每日演算法之三十八 Anagrams

2021-09-22 08:57:43 字數 696 閱讀 8143

given an array of strings, return all groups of strings that are anagrams.

note: all inputs will be in lower-case.

回文字串是指:

兩個字串的字元個數全然同樣,這兩個字串是anagrams。因此anagrams至少指倆字串。找出字元集合中的anagrams組。

由此我們能夠想到,僅僅要將幾個單詞依照字母順序進行排序,就能夠通過比較推斷他們是否是anagrams。

思路:用map記錄排序後的字串以及首次出現的位置。

1. 從strs的第乙個元素開始遍歷。首先對元素進行排序得到s;

2. 在map裡查詢s;

3. 若不存在,將s以及該元素的下標存入map;

4. 若存在,首先將第一次出現s時的原始字串存入結果res,即strs[map[s]],並將map[s]設定為-1(防止下次再存),再將該字串本身存入結果res。

5. 反覆以上1-4步,直到遍歷結束。

以下是**:

class solution 

res.push_back(strs[i]);//僅僅要是在快取中匹配的,就說明之前有匹配的回文串。加入到結果集中}}

return res;

}};

每日演算法之三十八 Anagrams

given an array of strings,return all groups of strings that are anagrams.note all inputs will be in lower case.回文字串是指 兩個字串的字元個數全然同樣,這兩個字串是anagrams。因此a...

演算法(三十八)

1 使用者模型檔案去重。抖音上不同的使用者型別我們有不同的使用者模型檔案。我們有乙個模型配置檔案,裡面有很多的不同使用者型別和他們對應的模型檔案。我們需要找出每個模型檔案對應的是哪些使用者型別。給定一行輸入,格式為 a ba表示這個使用者的使用者型別,b表示這個使用者對應的模型檔案。請你輸出每個模型...

劍指offer系列之三十八 判斷是否是平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。所謂平衡二叉樹就對某個結點來講,其左子樹的深度與右子樹深度的絕對值不超過1。由於需要對每個節點進行判斷,所以可以採用遞迴的思路進行解決。具體思路是 先求出根節點的左右子樹的深度,並對兩者進行判斷,如果沒有滿足左右子樹的深度的絕對值不超過1的條件...