程序以查找Python中包含给定子字符串的最小字符串大小
假设我们有两个字符串s和t,我们必须找到s中包含所有t字符的最小子字符串的大小。如果不存在这样的子字符串,则返回-1。
因此,如果输入像s=“thegrumpywizardmakes”t=“wake”,则输出将为10,因为包含“wake”的最短子字符串为“wizardmake”(长度为10)。
范例(Python)
让我们看下面的实现以更好地理解-
class Solution:
def solve(self, a, b):
counter = {}
for char in b:
counter[char] = counter.get(char, 0) + 1
start = 0
min_subs = float("inf")
rem = len(counter)
for end in range(len(a)):
current = a[end]
if current in counter:
counter[current] -= 1
if counter[current] == 0:
rem -= 1
while rem == 0:
prev_char = a[start]
if prev_char in counter:
counter[prev_char] += 1
if counter[prev_char] > 0:
rem += 1
min_subs = min(min_subs, end - start + 1)
start += 1
return min_subs if min_subs != float("inf") else -1
ob = Solution()
s = "thegrumpywizardmakes"
t = "wake"
print(ob.solve(s, t))输入值
"thegrumpywizardmakes", "wake"输出结果
2
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短