Python 字母不重叠
Python not overlapping letters
这是我的代码:
a = raw_input("Haystack ")
b = raw_input("Needle ")
common = {}
if len(a)<len(b):
for letter in a:
if letter in b:
common[letter]= 1
else:
for letter in b:
if letter in a:
common[letter]= 1
print (len(common))
我写了一个关于大海捞针的代码。但我似乎无法弄清楚如何将它添加到必须读取非重叠字母的代码中。例如。如果用户在 haystack "qqwwee" 和 needle "qw" 之后输入,那么它必须输出 1 而不是 2,因为 haystack 中只有一个 "qw"。
您可以在获得用户的输入后使用 count
方法
In [13]: a='qqwwee'
In [14]: 'qw' in a
Out[14]: True
In [15]: 'qwe' in a
Out[15]: False
In [16]: a='qqwweqwe'
In [17]: 'qw' in a
Out[17]: True
In [18]: a.count('qw')
Out[18]: 2
In [19]: a='qqwqqweqwe'
In [20]: a.count('qw')
Out[20]: 3
下面是您想要的代码。它将根据长度检查字符串 a 到字符串 b 的计数,反之亦然。
a = raw_input("Haystack ")
b = raw_input("Needle ")
if len(a)<len(b):
print str(b.count(a))
else:
print str(a.count(b))
在这种情况下,您不必遍历 b 和 a 的所有元素,因为您要搜索整个单词,而是可以使用正则表达式。
from collections import Counter
import re
a = raw_input("Haystack ")
b = raw_input("Needle ")
reg = re.compile(b)
c = Counter(word.group() for word in reg.finditer(a))
print(c)
希望对您有所帮助。
这是我的代码:
a = raw_input("Haystack ")
b = raw_input("Needle ")
common = {}
if len(a)<len(b):
for letter in a:
if letter in b:
common[letter]= 1
else:
for letter in b:
if letter in a:
common[letter]= 1
print (len(common))
我写了一个关于大海捞针的代码。但我似乎无法弄清楚如何将它添加到必须读取非重叠字母的代码中。例如。如果用户在 haystack "qqwwee" 和 needle "qw" 之后输入,那么它必须输出 1 而不是 2,因为 haystack 中只有一个 "qw"。
您可以在获得用户的输入后使用 count
方法
In [13]: a='qqwwee'
In [14]: 'qw' in a
Out[14]: True
In [15]: 'qwe' in a
Out[15]: False
In [16]: a='qqwweqwe'
In [17]: 'qw' in a
Out[17]: True
In [18]: a.count('qw')
Out[18]: 2
In [19]: a='qqwqqweqwe'
In [20]: a.count('qw')
Out[20]: 3
下面是您想要的代码。它将根据长度检查字符串 a 到字符串 b 的计数,反之亦然。
a = raw_input("Haystack ")
b = raw_input("Needle ")
if len(a)<len(b):
print str(b.count(a))
else:
print str(a.count(b))
在这种情况下,您不必遍历 b 和 a 的所有元素,因为您要搜索整个单词,而是可以使用正则表达式。
from collections import Counter
import re
a = raw_input("Haystack ")
b = raw_input("Needle ")
reg = re.compile(b)
c = Counter(word.group() for word in reg.finditer(a))
print(c)
希望对您有所帮助。