缓冲区数组在循环内做什么?



你能解释一下这段代码吗? 我无法理解缓冲区数组的使用。 每个索引的值如何变为零?

public static boolean isAnagram(String input1, String input2) {
if(input1 == null || input2 == null || (input1.length() != input2.length())){
return false;
} else {
int[] buffer = new int[26];
for(int i=0; i < input1.length(); i++){
buffer[input1.charAt(i) - 'a']++;  
buffer[input2.charAt(i) - 'a']--;  
}
for(int j=0; j < buffer.length; j++){
if(buffer[j] != 0) return false;   
}
return true;
}
}

buffer为字符串中使用的每个小写字符值保存一个使用计数器,最初全部为零。

然后,每次使用input1字符时,每个计数器都会递增,在input2中每次使用字符时递减,因此如果所有字符的使用次数相同,则所有计数器最终将变为零。

如果使用包含小写字母以外的任何内容的字符串调用此函数,则此函数可能会崩溃。

最新更新