題目:給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。
輸入: ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出:[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]說明:所有輸入均為小寫字母;不考慮答案輸出的順序。
解題思路:
1.每個字串進行排序(php 中先打散為陣列,排序後再組裝),排序後的字串作為 key,排序前的字串作為值,新增到返回值中即可
1/**2* @info #1: 每個字串進行排序(先打散為陣列,排序後再組裝)
3* 排序後拼接的字串作為key, 排序前字串作為value
4* @param array $strs 待處理陣列
5* @return array
6* @author daisy
7* @date 2020/9/6 4:03 pm8*/
9public
function groupanagrams1($strs)10
18return
array_values($map
);19 }
2.借助 26 個字母與素數的乙個對映集。求積可得唯一 key,相當於乙個無衝突的 hash function
1/**2* @info #2: 借助26個字母與素數的乙個對映集
3* 求積可得唯一key, 相當於乙個無衝突的hash function
4* @param array $strs 待處理陣列
5* @return array
6* @author daisy
7* @date 2020/9/6 4:03 pm8*/
9public
function groupanagrams2($strs)10
1920
$resarr[$strlen] = $str;21
}22return
array_values($resarr
);23 }
字母異位詞分組
超出時間限制 依次遍歷陣列中每乙個字串,與list中每乙個templist中的第乙個進行對比,如果長度不相等即為不合格,如果list走到了結尾,字串肯定不包含與list中,新增成為list中新的一員。如果與templist中一樣則為新增為templist中一員 但是超出時間限制 public lis...
字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 思路 遍歷string陣列,對每個string排序,然後以鍵形式存入雜湊表中,雜湊表鍵為排序後的stri...
字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。具體解析 class solution return ...