我發現此問題發佈在此處,但無法評論或提出問題,所以我創建了一個新問題。這段代碼發生了什麼。字符串作爲字符串中的子字符串
原來的職位說明如下:
t = "abd"
s = "abdc"
小號平凡包含噸。然而,當你對它們進行排序時,你會得到字符串abd和abcd,並且比較失敗。排序會得到其他字母。
相反,您需要以大小爲t的塊來逐步完成s。
t_len = len(t)
s_len = len(s)
t_sort = sorted(t)
for start in range(s_len - t_len + 1):
chunk = s[start:start+t_len]
if t_sort == sorted(chunk):
# SUCCESS!!
在for循環中,他們爲什麼要用S-len然後減去t_len?爲什麼他們最後加1?
因爲's_len - t_len + 1'子字符串中最多隻能有't_len'。總而言之,在一個4字符的字符串中,每個字符串最多可以有2個子字符串。也就是說,前3個字符和後3個字符,「abd」和「bdc」。 – alvits
這實際上是創建一個窗口的大小(len(t)),然後你滑過len(s)。即檢查s中長度爲len(t)的所有連續子串。在這個例子中,長度爲3的2個子字符串。 –
謝謝你幫助澄清事情。 – john