R编程-回文问题:循环索引引用错误导致结果不符
回文验证循环的索引错误排查
回文验证踩索引坑太常见了,直接说几个最容易翻车的点,你对照自己的代码查:
1. 结尾索引算错(最常见)
字符串长度为n时,合法索引范围是0到n-1。很多人会把结尾索引写成n - i,但正确的应该是n - 1 - i。比如字符串"abcba"长度为5,i=0时对应结尾索引是4(5-1-0),要是写成5-0=5,直接越界取到不存在的字符,程序要么报错,要么直接判定字符不相等,返回非回文结果。
错误代码示例(Python):
def check_palindrome(s): n = len(s) for i in range(n): # 此处索引错误!正确应为 n-1-i if s[i] != s[n - i]: return "This is not a palindrome" return "This is a palindrome"
2. 循环跑过了头
回文只需要对比前半段和后半段即可,要是循环条件写成i < n而非i < n//2,虽然不会直接返回相反结果,但后半段的重复对比完全没必要,若存在字符大小写、空格未统一的情况,还可能间接干扰判断。
3. 索引同步更新错误
比如初始化了j = n-1,但循环里只让i递增,没同步让j递减,或者j的更新逻辑和i不匹配,导致每次对比的不是对应的首尾字符。
先自查这几个点,要是还找不出问题,把你的代码贴出来,一眼就能揪出问题所在。
内容的提问来源于stack exchange,提问作者toplevel5
相关产品推荐
相关产品推荐

