LeetCode 30 與所有單詞相關聯的字串

2021-09-08 03:08:55 字數 1057 閱讀 7741

描述:給定乙個字串 s 和一些長度相同的單詞 words。在 s 中找出可以恰好串聯 words 中所有單詞的子串的起始位置。

注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。

示例 1:

輸入:s = 「barfoothefoobarman」,

words = [「foo」,「bar」]

輸出: [0,9]

解釋: 從索引 0 和 9 開始的子串分別是 「barfoor」 和 「foobar」 。

輸出的順序不重要, [9,0] 也是有效答案。

示例 2:

輸入:s = 「wordgoodstudentgoodword」,

words = [「word」,「student」]

輸出:

思路先統計words中每個字串出現的次數,存到wordsmap中;

然後根據words中的字串的長度是一樣的特點,迴圈遍歷s;

每次迴圈:初始化新的seenmap,擷取s中的字串:

如果字串在words中,則把該字串及其出現的次數,存放到seenmap;並檢查該字串出現在seenmap中的次數是否大於wordsmap中的次數。

如果字串不在words中,則跳出迴圈

public class findsubstring 

int slen=s.length();

int wlen=words.length;

int len=words[0].length();

//先統計words中每個字串出現的次數

hashmapwordsmap=new hashmap<>();

for (int i=0;iseenmap=new hashmap<>();

int j=0;

while (jwordsmap.getordefault(str,0))

}else

//注意這裡

j++;

}if(j==wlen)

}return result;

}}

Leetcode30與所有單詞相關聯的字串。

題目 定乙個字串 s 和一些長度相同的單詞 words。在s 中找出可以恰好串聯 words 中所有單詞的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。public static listfindsubstring str...

Leetcode 30 與所有單詞相關聯的字串

題目描述 給定乙個字串 s 和一些長度相同的單詞 words。在 s 中找出可以恰好串聯 words 中所有單詞的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。示例 1 輸入 s barfoothefoobarman wo...

leetcode30 與所有單詞相關聯的字串

leetcode.0030 與所有單詞相關聯的字串 給定乙個字串 s 和一些長度相同的單詞 words。在 s 中找出可以恰好串聯 words 中所有單詞的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。示例1 輸入 s b...