Leetcodeのインタビュー質問01.02. お互いがキャラ配置換えかどうか判断する

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);
    }
 

終わり

コメント エリアでのコミュニケーション、毎日チェックイン、お急ぎください。

おすすめ

転載: blog.csdn.net/qq_35530042/article/details/127064670