CSDN トピック チャレンジ フェーズ 2
参加トピック:アルゴリズム ソリューション
記事ディレクトリ
トピックのリンクと説明
https://leetcode.cn/problems/check-permutation-lcci/
キーワード: ソートハッシュテーブル
文字の並べ替えであるかどうかを判断するには、長さが等しいことと、同じ文字が等しいことの
2 つの条件に基づいて、次を使用できます。
- 仕分け後。文字列を比較する
- 対応する文字の数の比較を記録します (公式の解決策は少し答え指向であり、文字は必ずしも文字であるとは限らないため、ハッシュ テーブルを使用する必要があります)
方法 1: ハッシュ テーブル
スクリーンショットを実行する
コード
public boolean CheckPermutation(String s1, String s2) {
if (s1.length() != s2.length()) {
return false;
}
Map<Character, Integer> table = new HashMap<>();
for (int i = 0; i < s1.length(); i++) {
table.put(s1.charAt(i), table.getOrDefault(s1.charAt(i), 0) + 1);
}
for (int i = 0; i < s2.length(); i++) {
table.put(s2.charAt(i), table.getOrDefault(s2.charAt(i), 0) - 1);
if (table.getOrDefault(s2.charAt(i), 0) < 0) {
return false;
}
}
return true;
}
方法 2: 並べ替える
スクリーンショットを実行する
コード
public boolean CheckPermutation(String s1, String s2) {
if (s1.length() != s2.length()) {
return false;
}
char[] str1 = s1.toCharArray();
char[] str2 = s2.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1, str2);
}
終わり
コメント エリアでのコミュニケーション、毎日チェックイン、お急ぎください。!!