字母異位詞分組

2022-07-19 15:18:20 字數 1096 閱讀 3574

題目:給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。

輸入: ["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 ...