438 找到字串中所有字母異位詞

2021-10-13 05:19:48 字數 1117 閱讀 2753

給定乙個字串s和乙個非空字串p,找到s中所有是p的字母異位詞的子串,返回這些子串的起始索引。

字串只包含小寫英文本母,並且字串sp的長度都不超過 20100。

說明:

示例 1:

輸入:s: "cbaebabacd" p: "abc"輸出:[0, 6]解釋:起始索引等於 0 的子串是 "cba", 它是 "abc" 的字母異位詞。

起始索引等於 6 的子串是 "bac", 它是 "abc" 的字母異位詞。

示例 2:

輸入:s: "abab" p: "ab"輸出:[0, 1, 2]解釋:起始索引等於 0 的子串是 "ab", 它是 "ab" 的字母異位詞。

起始索引等於 1 的子串是 "ba", 它是 "ab" 的字母異位詞。

起始索引等於 2 的子串是 "ab", 它是 "ab" 的字母異位詞。

思路:滑動視窗的思想。

**實現:

class solution 

int n = p.length();

int chararray = new int[26]; // 因為字元都是小寫字母,那麼可以用下標( 字元 - 'a') 出現的字元個數

int findchararray = new int[26];

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

int j = 0;

int count = 0; // 統計已新增多少個字元

while(j < s.length()) else

if (count == n) else }}

}j++;

}return result;

}}

438 找到字串中所有字母異位詞

給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...

438 找到字串中所有字母異位詞

給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...

438 找到字串中所有字母異位詞

給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...