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

Ruby回文检测代码字符串比较未返回正确结果,求问题排查

回文检测代码问题分析

你的代码存在两个关键问题,导致无法正确判断回文:

1. 索引计算错误

字符串索引从0开始,长度为n的字符串,最后一个字符的索引是n-1。你代码里的myString.length-a+1会导致索引越界(比如a=0时,索引为length+1,完全超出字符串范围),正确的对称索引应该是:

myString.length - 1 - a

2. 循环逻辑缺陷

每次循环都会无条件覆盖p的值——哪怕前面已经发现字符不相等,后续循环(比如比较中间字符时)会把p重新设为true,最终结果被错误覆盖。正确逻辑应该是:

  • 初始化p为true
  • 一旦发现任意一对字符不相等,立刻将p设为false并终止循环(无需继续比较剩余字符)

修正后的代码示例

p = true
for a in 0...(myString.length / 2) do
  if myString[a] != myString[myString.length - 1 - a]
    p = false
    break
  end
end
p

或者用更简洁的Ruby风格写法直接判断:

myString == myString.reverse

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:44:51