給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。
示例 1:
輸入:s = "anagram", t = "nagaram"輸出:true示例 2:
輸入:s = "rat", t = "car"輸出:false說明:你可以假設字串只包含小寫字母。
解:看到這個題,想到的就是判斷兩個字串中的字母及其數量是否相同,我的想法是用兩個map容器分別儲存兩個字串中字母及其出現的次數,若兩個map完全相等則肯定互為字母異位詞。不過可以先判斷兩個字串長度是否相同,若長度都不同那肯定是false。**如下:
bool isanagram(string s, string t)
else
it->second++;
} for (int i = 0; i < t.length(); i++)
else
it->second++;
} if (a == b)
return true;
else return false;
}
不過這個方法雖然思路簡單卻不是乙個高效的演算法。 有效的字母異位詞
原題位址 判斷是否是字母異位詞即判斷字串中是否只有字元的位置不同,也就是判斷兩個字串中包含的字元以及這些字元出現的次數是否相同 首先既然只有位置不同,那麼長度不同的字串必然不符合要求。將字串轉換為字元陣列之後對陣列進行排序,這兩個陣列中的元素必然全部相等 public boolean isanagr...
有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你...
有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母 高階 如果輸入字串包含 unicode 字元怎麼辦?你能否...