given an array of strings, group anagrams together.
給乙個由字串構成的陣列,讓我們把裡面字串由相同的字元組合起來的字串分成一組。
input: [
"eat", "tea", "tan", "ate", "nat", "bat"
],output:[[
"ate","eat","tea"
], [
"nat","tan"
], [
"bat"]]
note:
all inputs will be in lowercase.
the order of your output does not matter.
看到這個題就簡單直觀的解法就是遍歷陣列,遇到乙個字串後我們將這個字串排序,然後用乙個字典儲存由相同字元組成的字串的陣列。
整個過程就是遍歷陣列元素,排序,去字典中查詢有無這個值,沒有就加上包含這個元素的陣列,有就在這個陣列中新增這個元素。最後返回這個字典的值組成的陣列。
python中沒有str的排序函式好像,所以先轉換為list,然後再排序,再轉換為str查詢字典。
class
solution
:def
groupanagrams
(self, strs: list[
str])-
> list[list[
str]]:
result_dict =
for i in strs:
temp_list =
list
(i) temp_list.sort(
) temp_list =
''.join(temp_list)
if temp_list in result_dict:
result_dict[temp_list]
else
: result_dict[temp_list]
=[i]
print
(result_dict)
result =
for i in result_dict:
)print
(result)
return result
終於補完了,等下午的最後一題發布這個四月挑戰就算完成了,雖然前期因為種種原因沒能做到每天一道跟上進度,但好歹在最後這幾天都補上了,這個四月挑戰自我感覺對我的提公升還是挺大的,下乙個月就算沒有這種挑戰了也會盡量每天總結一道題。 4月30天leetcode訓練 Day15
給定乙個由n個整數組成的陣列,其中n 1,則返回乙個陣列輸出,使得output i 等於除nums i 之外的所有nums元素的乘積。example input 1,2,3,4 output 24,12,8,6 不考慮時間複雜度的話,通過遞迴暴力破解,設定遞迴輔助函式,傳入陣列和開始,結束位置。開始...
4月30天leetcode訓練 Day16
給了乙個2維陣列,裡面是由1和0組成。規則是這樣的,1代表陸地,0代表海水,讓我們尋找小島,那小島肯定有乙個特點,被水隔離,連續的陸地組成一塊小島,而本題中連續的定義為上下左右相鄰 不包括對角線 基於這樣的規則讓我們找尋有幾個島。example 1 input 11110 11010 11000 0...
4月30天leetcode訓練 Day27
given a 2d binary matrix filled with 0 s and 1 s,find the largest square containing only 1 s and return its area.從乙個二維矩陣中找出最大的正方形面積 正方形裡面都是1才合法 input ...