You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入回文函数后判断失效:处理回文检查中的尾随换行符问题

解决导入回文函数后回文判断错误的问题

我一眼就揪出问题所在了!你读取文件行的时候,readline()会把文本末尾的**换行符\n**也一并读进来,转小写后这个隐藏的换行符依然存在。正是这个不起眼的字符,导致处理后的字符串反转后和原串不匹配,才让回文判断结果出错。

具体问题拆解

你读取的行实际内容是:"was it a cat i saw?\n",转小写后还是带着\n。经过palindrome函数清理掉标点空格后,得到的是"wasitacatisaw\n",反转后变成"\nwasitacatisaw",和原串明显不相等,所以才会输出“not palindrome”。

修复方案

只需要在读取行的代码后加上strip()方法(去掉首尾所有空白字符,包括换行符、空格、制表符等),或者用rstrip('\n')精准去掉末尾的换行符即可。另外路径里的反斜杠建议加上r前缀做成原始字符串,避免潜在的转义问题。

修正后的完整调用代码:

from pal_func import palindrome
f=open(r"C:\Users\hp\Desktop\test file.txt",'r')
c=f.readline().lower().strip()  # 新增strip()处理换行符
print(c)
palindrome(c)

验证结果

运行修正后的代码,输出就会完全符合预期:

was it a cat i saw?
wasitacatisaw is palindrome

内容的提问来源于stack exchange,提问作者Chitransh Mathur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:55:02