242.有効なアナグラム

タイトルの説明

2つの文字列s tを指定してt sのアナグラムかどうかを判別する関数を記述します

例1:

入力:s = "anagram"、t = "nagaram" 
出力:true

例2:

入力:s = "rat"、t = "car" 
出力:false

注:文字列に小文字のアルファベットのみが含まれていると想定する場合があります。

フォローアップ:入力にUnicode文字が含まれている場合はどうなりますか?このような場合にソリューションをどのように適応しますか?

難易度要因

解決策1:ソート後に比較する

クラスSolution {
 public bool isAnagram(string s、string t){ 
        sort(s.begin()、s.end()); 
        sort(t.begin()、t.end()); 
        s == tを返す; 
    } 
};

 

解決策2:各文字列の文字数を記録する

クラスSolution {
 public bool isAnagram(string s、string t){
         int s_alpha [ 26 ] = { 0 };
        int t_alpha [ 26 ] = { 0 };
        if(s.size()!= t.size())は
             falseを返し ますforint i = 0 ; i <s.size(); ++ i){ 
            s_alpha [s [i] - ' a ' ] ++ ; 
            t_alpha [t [i] -' a ' ] ++ ; 
        } 
        forint j = 0 ; j < 26 ; ++ j){
             if(s_alpha [j]!= t_alpha [j])
                 return  false ; 
        } 
        trueを返し ます
    } 
};

 

 

おすすめ

転載: www.cnblogs.com/AntonioSu/p/12741562.html