Используя вложенный цикл for, вы будете перебирать каждую возможную пару (i, j) с i и j in idex в a
и b
соответственно. Кроме того, вы используете i++
и j++
дважды, и, таким образом, вы пропустите четные индексы. Вы не можете вернуть true
с момента a[i++] == b[j++]
совпадений. Чтобы узнать, является ли что-то анаграммой, вам нужно пройтись по всем элементам. Вы можете вернуть false
с момента a[i] != b[i]
однако. Наконец, граница должна быть i < a.length
, а не i <= a.length
.
Таким образом, вам нужен один цикл for
, в котором вы делаете одно приращение и сравниваете a[i]
с b[i]
:
public boolean isAnagram(String s, String t) {
if(s.length() != t.length()){
return false;
}
char[] a = s.toCharArray();
char[] b = t.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
for(int i = 0; i < a.length; i++) {
if(<b>a[i] != b[i]</b>) {
return <b>false</b>;
}
}
return <b>true</b>;
}