Java 缓冲区数组在循环中做什么?
你能给我解释一下这个密码吗?我不能理解缓冲区数组的用法。每个索引的值如何变为零Java 缓冲区数组在循环中做什么?,java,algorithm,Java,Algorithm,你能给我解释一下这个密码吗?我不能理解缓冲区数组的用法。每个索引的值如何变为零 public static boolean isAnagram(String input1, String input2) { if(input1 == null || input2 == null || (input1.length() != input2.length())){ return false; } else { int[]
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;
}
}
公共静态布尔isAnagram(字符串input1,字符串input2){
如果(input1==null | | input2==null | |(input1.length()!=input2.length()){
返回false;
}否则{
int[]缓冲区=新int[26];
对于(int i=0;i
缓冲区
为字符串中使用的每个小写字符值保存一个使用计数器,最初全部为零
然后,对于input1
中的字符的每次使用,每个计数器都会递增,对于input2
中的字符的每次使用,每个计数器都会递减,因此,如果所有字符的使用次数相同,则所有计数器最终都将变为零
如果使用不包含小写字母的字符串调用此函数,则该函数可能会崩溃。如果您能回答自己的问题,那就太好了。24小时后(我想)你就能接受这个答案了。你的评论听起来确实有些讽刺。这段代码在没有exception@janith1024是的。实际上,-a和+a返回的是+1和-1,所以如果字符串是字谜,它会相互抵消,因此整个数组变为零。我算出了。但是感谢你的帮助。非常感谢。