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