1つの文字列が別の文字列を置換できるかどうかを示すブール値を返す次のコードがあります。 仮定は、我々はASCII文字を使用していることは、次の2つの文字列を渡す場合、出力は のSystem.out.println(checkPermutation(「犬」、「ODF」))まだ本当である文字配列を使用しているときに、パーミュテーションチェッカーの出力が正しくない
を設定することです。
何が欠けていますか?
public static boolean checkPermutation(String s1, String s2) {
if(s1.length() != s2.length()) {
return false;
}
char[] letters = new char[128];
for(char c : s1.toCharArray()) {
letters[c]++;
}
for(int i = 0; i < s2.length(); i++) {
int c = (int) s2.charAt(i);
letters[c]--;
if(letters[c] < 0) {
return false;
}
}
return true;
}
@NimitPatel:Java配列の要素(クラスとインスタンスフィールド)は常に 'char'がある' '\ u0000''にHTTPSを参照適切なゼロに初期化されています://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5 –