字母異位詞分組 中等難度(設計hash鍵值)

2021-10-07 07:54:09 字數 1215 閱讀 5975

題目:

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

示例:輸入:

["eat"

,"tea"

,"tan"

,"ate"

,"nat"

,"bat"

]輸出:[[

"ate"

,"eat"

,"tea"],

["nat"

,"tan"],

["bat"]]

說明:所有輸入均為小寫字母。

不考慮答案輸出的順序。

思路:

分析題目含義:字母相同的即為乙個類別,期望分到乙個組中並在return vec中組成乙個vec

如何實現辨別是否為同一組:使用sort,如果sort後是一樣的,就是同一組

如何判別這一組是否已經存在了呢?:利用hash_map來記錄每乙個元素屬於哪一組,如果是第一次出現的組別,val = 0;下一次出現新的組別val = 1…

**:

class solution 

data_table[temp_str]

= data_table[str];}

vector> ret;

// 初始化ret

for(

int i =

0; i< flag;i++

)// 搞定ret

for(string str : strs)

return ret;}}

;

優化思路:

能否將上面的幾次迴圈合併呢?

注意:vector在沒有初始化的時候,是不能直接訪問索引的;

能否在第一次迴圈的過程中,直接將新出現的組別初始化,並新增到ret中呢?

優化**:

class solution 

else

}// // 初始化ret

// for(int i =0; i< flag;i++)

// 搞定ret

// for(string str : strs)

// return ret;}}

;

字母異位詞分組

超出時間限制 依次遍歷陣列中每乙個字串,與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 ...