字符串判等该怎么做请求解答

img

img


不太懂这个j++还有j=-1是什么意思
不太懂这个j++还有j=-1是什么意思
不太懂这个j++还有j=-1是什么意思

看这段代码的功能是,将输入的字符串 s1_old[] 去除空格并转换为统一的大小写后组成一个新串 s1_new[] 。
j = -1; 是赋值语句,就是将 -1 赋值给变量 j 。 j++; 就是变量 j 自增 1,等同于 j = j + 1;

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解答:

    在字符串判等的代码中,j++的含义是将j的值加1,即将待比较的当前字符索引指向下一个字符。j=-1的含义是将j的值赋为-1,表示目前没有可比较的字符。这是在代码实现上的技巧,因为当字符串相等时,i和j的值都会增加1,直到i等于字符串长度,此时j也会等于字符串长度。如果初始j值为0,则可能会有漏比较的情况,因此用j=-1来确保每个字符都会得到比较。以下是一个示例代码:

    def isEqual(str1, str2):
        if len(str1) != len(str2):
            return False
        i, j = 0, -1
        while i < len(str1):
            if j == len(str2) - 1:
                return False
            j += 1
            if str1[i] == str2[j]:
                i += 1
                continue
            else:
                return False
        return True
    

    在以上代码中,如果j达到了str2的最大索引值(即len(str2)-1),但i仍未达到len(str1),则说明str2还有剩余字符未被比较,返回False。如果str1和str2每个字符都能依次匹配,则返回True。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

j++可以理解为 j=j+1,实际就是对j变量+1操作,j=-1就是 j=j-1的缩写