LeetCode 字串系列(Anagram)

2021-08-01 04:56:40 字數 1184 閱讀 8655

49. group anagrams

題目:將輸入字串組按組成分類,輸出分類好的字串組

思路:hashmap——設定hashmap,key為每類字串按公升序排列,value為該類所有字串(list)。對於輸入的每個字串,進行字元陣列轉換,再進行排序,然後轉換回字串,如果hashmap中不包含該類字串,就建新key,否則將該值加入value。

public class solution 

else

}return new linkedlist>(hm.values());

}}

242. valid anagram

題目:判斷兩個字串是不是重組的

思路:新建陣列,統計26個字母的個數,第乙個對應字元+1,第二個對應字元減1,如果是重組的話,最後該陣列所有書為零。

public class solution 

for(int i = 0; i < t.length(); i++)

for(int i = 0; i < 26; i++)

return true;

}}

另外,可以類似49的做法,排序後看這兩個字串還等不等。

438. find all anagrams in a string

題目:在輸入字串中找到所有重組子串

思路:滑動窗——按照242的方法統計需匹配子串的所有字元次數,用start和end指示目前的窗,count標記還需匹配的個數(匹配乙個就減1)

public class solution 

int start = 0, end = 0, count = p.length();

while(end < s.length())

return ret;

}}

567. permutation in string

題目:找到是否存在重組子串

思路:與438題完全相同的方法

public class solution 

int start = 0, end = 0, count = s1.length();

while(end < s2.length())

return false;

}}

LeetCode 字串系列(子串)

30.substring with concatenation of all words 題目 在s找到所有words中所有字串串起來的子字串 包括words中所有字串 的起始位置 思路 參考了別人的解法,but超時,記錄一下。將words中的所有單詞建乙個hashmap,單詞和出現次數。每次新建乙...

LeetCode 字串系列(匹配)

28.implement strstr 題目 實現strstr 函式,即找到目標字串首次出現的位置。思路 利用substring函式,用equals直接判斷,簡單粗暴,好像也不是很慢。需要注意兩者均為空的情況。public class solution return 1 附上按位比較的方法,以及還有...

LeetCode 字串 反轉字串

反轉字串 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列char的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l ...