回文检测
检测字符串或句子是否为回文:可忽略大小写、空白、标点与变音符号,输出规范化文本、逐对比较位置、最长回文子串与最长回文子序列长度,中文、数字与 emoji 同样适用。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
待检测文本
判断基于规范化后的文本;长度与下标都按 Unicode 码点计算,emoji 不会被拆成两半。
规范化规则
2000 max
检测结果
输入文本后自动开始检测。
这个工具能做什么
- 校验一句「看起来像回文」的话:先去掉空格和标点再看首尾是否对称,避免手工逐字比对出错。
- 练习或教学最长回文子串:输入 babad 能看到最长回文子串是 bab,再对照动态规划求出的最长回文子序列长度。
- 检查中文回文(上海自来水来自海上)与含 emoji 的字符串,确认工具按 Unicode 码点处理而不是按字节。
- 排查数据里的对称串:编号、序列号、校验码设计成回文时用来快速验证。
示例
输入
A man, a plan, a canal: Panama
输出
是回文 · 规范化文本 amanaplanacanalpanama · 码点长度 21 · 最长回文子串 amanaplanacanalpanama · 最长回文子序列长度 21
默认忽略大小写、空白与标点,所以这句英文的逗号、冒号和空格都不参与比较。
常见问题
忽略标点会不会把 emoji 也删掉?
不会。标点只删 Unicode 的 P 类(p{P},逗号、句号、括号等),emoji 属于 S 类(p{S}),仍然参与比较。所以 😀ab😀 会被判定为回文,而 😀ab 不是。
变音符号是怎么处理的?
勾选后先做 Unicode NFD 分解,再删除组合标记,于是 café 变成 cafe、über 变成 uber。默认不开启,因为「忽略变音符号」会把法语、德语里本来有区别的字母当成同一个。
中文和数字也能检测吗?
可以。判断按 Unicode 码点逐个比较,中文、数字、假名、emoji 都一样;像「上海自来水来自海上」「12321」都会判为回文。全角空格算空白,勾选「忽略空白」后会被去掉。
为什么超长文本会报错?
最长回文子序列用的是 O(n²) 动态规划,最长回文子串是 O(n²) 中心扩展,长度上万时浏览器会明显卡顿。所以单次分析限制在 2000 个码点以内,超出直接提示而不是假装在算。
空文本算回文吗?
算。规范化后没有字符时,逐对比较列表为空、不匹配对数为 0,工具会判为回文并给出提示,避免把「只输入了标点」误读成错误。
关键词:palindromepalindrome checker回文检测回文串longest palindrome最长回文子串palindrome test镜像字符串中文回文emoji 回文