文巾解题 567. 字符串的排列
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 567. 字符串的排列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 題目描述
?2 解題思路:滑動窗口:
因為不管排列怎么排,s1字符串中的各個字母的個數是不變的。所以我們可以先設定一個大小和s1一樣的滑動窗口。然后對s1和滑動窗口掃到的s2部分進行排序。如果而這一樣,就說明包含這樣的排列
class Solution:def checkInclusion(self, s1: str, s2: str) -> bool:needs, window = defaultdict(int), defaultdict(int)left, right = 0, 0valid = 0for i in s1:needs[i] += 1while right < len(s2):c = s2[right]right += 1if c in needs:window[c] += 1if window[c] == needs[c]:valid += 1print(left, right)while right - left >= len(s1):if valid == len(needs):return Trued = s2[left]left += 1if d in needs:if window[d] == needs[d]:valid -= 1window[d] -= 1return False總結
以上是生活随笔為你收集整理的文巾解题 567. 字符串的排列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SCSE 21fall 课程
- 下一篇: NTU 目录