LeetCode 567. 字串的排列
題目
給定兩個字串 s1 和 s2,寫一個函式來判斷 s2 是否包含 s1 的排列。
換句話說,第一個字串的排列之一是第二個字串的子串。
示例1:
輸入: s1 = “ab” s2 = “eidbaooo”
輸出: True
解釋: s2 包含 s1 的排列之一 (“ba”).
示例2:
輸入: s1= “ab” s2 = “eidboaoo”
輸出: False
注意:
輸入的字串只包含小寫字母
兩個字串的長度都在 [1, 10,000] 之間
思路
最開始使用的是全排列,然後比較的時候發現T了,然後就想到用排序的方式,emmmm又T了。 最後想到用滑動視窗 然後A了
每次取 s1 長度的視窗 然後排序比較,相等就返回True
程式碼
class Solution(object):
def checkInclusion(self, s1, s2):
"""
:type s1: str
:type s2: str
:rtype: bool
"""
l1,l2 = len(s1),len(s2)
s1 = sorted(s1)
for i in range(l2-l1+1):
t = s2[i:i+l1]
if sorted(t) == s1:
return True
return False
相關文章
- 567. 字串的排列(中)字串
- LeetCode刷題進階之重新排列字串(1528)LeetCode字串
- leetcode 面試題08.08. 有重複字串的排列組合LeetCode面試題字串
- 字串全排列字串
- JZ-027-字串的排列字串
- JavaScript字串逆序排列JavaScript字串
- LeetCode-046-全排列LeetCode
- LeetCode系列46—全排列LeetCode
- 下一個排列(LeetCode)LeetCode
- 【LeetCode】46. 全排列LeetCode
- Leetcode——46. 全排列LeetCode
- leetcode:全排列(java回溯)LeetCodeJava
- 劍指 Offer 38. 字串的排列字串
- 無重複字串的排列組合字串
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- 字串排列組合問題字串
- LeetCode-441-排列硬幣LeetCode
- LeetCode-047-全排列 IILeetCode
- LeetCode31.下一個排列LeetCode
- 指標陣列練習排列字串指標陣列字串
- LeetCode 31. 下一個排列 | PythonLeetCodePython
- LeetCode 1470. 重新排列陣列LeetCode陣列
- LeetCode46 回溯演算法求全排列,這次是真全排列LeetCode演算法
- LeetCode 45跳躍遊戲&46全排列LeetCode遊戲
- LeetCode每日一題: 排列硬幣(No.441)LeetCode每日一題
- leetcode:字串相乘(java)LeetCode字串Java
- 3297. 統計重新排列後包含另一個字串的子字串數目 I字串
- 3298. 統計重新排列後包含另一個字串的子字串數目 II字串
- LeetCode-415-字串相加LeetCode字串
- LeetCode-043-字串相乘LeetCode字串
- LeetCode 394 字串解碼LeetCode字串
- leetcode 87 擾亂字串LeetCode字串
- LeetCode-459-重複的子字串LeetCode字串
- 【leetcode 3149. 找出分數最低的排列】記憶化搜尋LeetCode
- leetcode 1525 字串的好分割數目(雜湊表,字串分割)LeetCode字串
- LeetCode-344-反轉字串LeetCode字串
- LeetCode-097-交錯字串LeetCode字串
- 【LeetCode】796. 旋轉字串LeetCode字串