題目:給定兩個字串s和t,編寫乙個函式來判斷t是否是s的字母異位詞。
按四件套分析:
1. 首先,什麼是異位詞?是否大小寫敏感?跟面試官約定好。
2. 思路:
#1 暴力方法:sort, sorted_str相等?o(nlogn)
#2 hash,map -->統計每個字元的頻次o(n)
3. **實現:
#1 暴力方法:先排序,再判斷字元長度。
1class
solution
227 }
#2 雜湊對映:
首先判斷兩個字串長度是否相等,不等返回false
若相等,則初始化乙個雜湊表,遍歷字串s和t
s負責在對應位置增加,t負責在對應位置減少
如果雜湊表的值都為0,則二者是字母異位詞
1/**2* @info #2: 雜湊表
3* @param string $s 待比較字串
4* @param string $t 待比較字串
5* @return boolean
6* @date 2020/9/6 1:39 pm7*/
8public
function isanagram($s, $t)9
1415
$hash =;
16for ($i = 0; $i
< $length; ++$i
) else
2223
if (!isset($hash[$t[$i
]])) else28}
2930
foreach ($hash
as$val
) 34}35
36$this->state = true;37
38return
$this->state;
39 }
有效的字母異位詞
原題位址 判斷是否是字母異位詞即判斷字串中是否只有字元的位置不同,也就是判斷兩個字串中包含的字元以及這些字元出現的次數是否相同 首先既然只有位置不同,那麼長度不同的字串必然不符合要求。將字串轉換為字元陣列之後對陣列進行排序,這兩個陣列中的元素必然全部相等 public boolean isanagr...
有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母。解 看到這個題,想到的就是判斷兩個字串中的字母及其數量是否...
有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你...