婷宝_知萌 2023-11-13 15:52 采纳率: 0%
浏览 1
已结题

力扣459-重复的子字符串

力扣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)

  • 写回答

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);
    

    主要修改如下:

    1. s[0] 改为 s[i],因为我们需要比较当前字符和下一个字符。
    2. 在计算重复次数时,使用 Math.floor() 函数向下取整,以确保得到正确的重复次数。

    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 修改了问题 11月13日
  • 创建了问题 11月13日