給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。
換句話說,第乙個字串的排列之一是第二個字串的子串。
示例1:
輸入: s1 = 「ab」 s2 = 「eidbaooo」
輸出: true
解釋: s2 包含 s1 的排列之一 (「ba」).
題解:滑動視窗
用雜湊表記錄s1**現的字元,用雙指標left、right在s2中控制乙個滑動視窗,初始均指向s2首字元,讓right不斷向右移動,保證滑動視窗內的字元均在s1**現過且出現次數不大於s1中該字元出現次數,否則left向右移動,直到重新滿足上述要求。如果視窗滑動的過程中,出現某個時刻滑動視窗的長度等於s1的長度,則返回true,否則當right到達s2尾字元時,返回false。
class
solution
int left=
0,right=0;
while
(rightif(right-left+
1==len1)
right++;}
return
false;}
}
LeetCode 567 字串的排列
給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...
leetcode 567 字串的排列
給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...
LeetCode 567 字串的排列
給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...