力扣459.重复的子字符串使用下面的解法一直报错,不知道为什么?javascript s = "a" function test6 (s) { let i = 0 while (i < s.length) { if (s[0] === s[i + 1]) { // a===b let x = s.substring(0, i + 1) console.log('x', x) // 2 console.log(x.length) console.log('sss', s.length / x.length) if (s == x.repeat(s.length / x.length)) { // 子串x 'ab' 重复了 s/x.length 次得到s return true } else { return false } } else if (s.length === 1) { return true } else { i++ } } } test6(s)
力扣459-重复的子字符串
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
Leodong. 2023-11-13 16:28关注该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
你的代码中存在一些问题,我将为你提供一个修复后的版本:function test6(s) { let i = 0; while (i < s.length) { if (s[i] === s[i + 1]) { let x = s.substring(0, i + 1); console.log('x', x); console.log(x.length); console.log('sss', s.length / x.length); if (s == x.repeat(Math.floor(s.length / x.length))) { return true; } else { return false; } } else if (s.length === 1) { return true; } else { i++; } } } let s = "a"; test6(s);主要修改如下:
- 将
s[0]改为s[i],因为我们需要比较当前字符和下一个字符。 - 在计算重复次数时,使用
Math.floor()函数向下取整,以确保得到正确的重复次数。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
解决 无用评论 打赏 举报- 将