如何判断一个字符串是否包含给定的子串(有间隙)

例如

a = 'abc123def'
b = 'abcdef'

我想要一个可以判断b是否在a中的函数。

contains(a,b)=True

b的表示中也允许有ps gap,eg

b='abc_def'

但不允许使用正则表达式。


缥缈止盈
浏览 109回答 3
3回答

婷婷同学_

如果你想做的是检查 是否b是 的子序列a,你可以这样写:def contains(a, b):    n, m = len(a), len(b)    j = 0    for i in range(n):        if j < m and a[i] == b[j]:            j += 1    return j == m

墨色风雨

尝试使用列表理解:def&nbsp;contains(main_string,&nbsp;sub_string): &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;all([i&nbsp;in&nbsp;main_string&nbsp;for&nbsp;i&nbsp;in&nbsp;sub_string])注意:'all' 是一个内置函数,它接受一个可迭代的布尔值,如果全部为 True 则返回 try。

aluckdog

def new_contained(a,b):&nbsp; &nbsp;boo = False&nbsp; &nbsp;c = [c for c in a]&nbsp; &nbsp;d =&nbsp; [i for i in b]&nbsp; &nbsp;if len(c)<=len(d):&nbsp; &nbsp; &nbsp;for i in c:&nbsp; &nbsp; &nbsp; &nbsp; if i in d:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boo = True&nbsp; &nbsp;return boo&nbsp;&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python