import re
def q368(s,words):
count = 0
for each in words:
if len(each) <= len(s):
new_words = ''
for word in each:
new_words += (word + '\w*')
if re.match(new_words, s):
count += 1
return count
if __name__ == '__main__':
s = 'abcde'
words = ['a', 'bb', 'acd', 'ace']
print(q368(s,words))
{:10_288:}
我默认是找有顺序的子字符串
def fun368(s,words):
if not s:return 0
result=0
d=s[:]
for word in words:
for alpha in word:
index=s.find(alpha)
if index==-1:
s=d
break
else:
if word.find(alpha)==len(word)-1 and s.find(alpha)!=-1:
result+=1
s=d
break
elif word.find(alpha)==len(word)-1 and s.find(alpha)==-1:
s=d
break
s=s
return result
s = "abcde"
words = ["a", "bb", "acd", "ace"]
def fun368(s, words):
n = 0
for word in words:
temp = []
each = 0
sss = ''
while each <=len(s)-1:
if s in word:
temp.append(s)
each += 1
for i in range(len(temp)):
sss += temp
if sss == word:
n += 1
return n
print(fun368(s,words))
@zltzlt 这个子串有顺序要求吗?就比如acd是不是abcd的子串?
也就是说,这个字串是连续的还是不连续的?
蒋博文 发表于 2020-4-5 23:15
也就是说,这个字串是连续的还是不连续的?
可以是不连续的,但是有顺序要求
zltzlt 发表于 2020-4-6 07:58
可以是不连续的,但是有顺序要求
也就是说acd是不可以改为adc的对吗?
def subfind(s,words):
flag=0
count=0
for i in words:
k=s
for j in range(0,len(i)):
if(k.find(i)==-1):
flag=1
break
else:
k=k.replace(i,"")
if(flag==0):
count+=1
flag=0
return count
fan1993423 发表于 2020-4-4 23:41
adc是不是acde的子序列
感觉不是吧……
蒋博文 发表于 2020-4-6 10:52
也就是说acd是不可以改为adc的对吗?
是的
March2615 发表于 2020-4-4 20:38
s里面是可以重复的?
比如输入:s=“abcdea”, words = ["cda"]
这时输出是1?
408 ms
BngThea 发表于 2020-4-4 20:40
解答错误
输入:s = "dsahjpjauf", words = ['ahjpjau', 'ja', 'ahbwzgqnuk', 'tnmlanowax']
输出:1
预期结果:2
TJBEST 发表于 2020-4-4 20:41
先来一个效率低的
1472 ms
l0stparadise 发表于 2020-4-4 20:47
524 ms
ouyunfu 发表于 2020-4-4 20:54
解答错误
输入:s = "dsahjpjauf", words = ['ahjpjau', 'ja', 'ahbwzgqnuk', 'tnmlanowax']
输出:1
预期结果:2
kinkon 发表于 2020-4-4 21:20
看例子感觉有顺序要求啊
再来一个,试试哪个快
第一个解答错误
输入:s = "rwpddkvbnnuglnagtvamxkqtwhqgwbqgfbvgkwyuqkdwhzudsxvjubjgloeofnpjqlkdsqvruvabjrikfwronbrdyyjnakstqjac"
words = ['wpddkvbnn', 'lnagtva', 'kvbnnuglnagtvamxkqtwhqgwbqgfbvgkwyuqkdwhzudsxvju', 'rwpddkvbnnugln', 'gloeofnpjqlkdsqvruvabjrikfwronbrdyyj', 'vbgeinupkvgmgxeaaiuiyojmoqkahwvbpwugdainxciedbdkos', 'mspuhbykmmumtveoighlcgpcapzczomshiblnvhjzqjlfkpina', 'rgmliajkiknongrofpugfgajedxicdhxinzjakwnifvxwlokip', 'fhepktaipapyrbylskxddypwmuuxyoivcewzrdwwlrlhqwzikq', 'qatithxifaaiwyszlkgoljzkkweqkjjzvymedvclfxwcezqebx']
输出:6
预期结果:5
kinkon 发表于 2020-4-4 21:20
看例子感觉有顺序要求啊
再来一个,试试哪个快
第二个解答错误
输入:s = "dsahjpjauf"
words = ["ahjpjau", "ja", "ahbwzgqnuk", "tnmlanowax"]
输出:0
预期结果:2
chen971130 发表于 2020-4-4 21:43
输入以下数据超时:
jdzzj 发表于 2020-4-4 22:44
700 ms
ouyunfu 发表于 2020-4-4 22:50
输入以下数据超时: