我正在尝试创建一个函数,该函数将字符串作为输入,并返回一个字符串,该字符串至少按输入顺序n
出现在输入字符串中的所有字符组成。
例如,repeat("cchatlpcat", 2)
将返回字符串cat
。
答案 0 :(得分:2)
def repeat(string, n):
result=''
for x in string:
if string.count(x) >= n and x not in result:
result += x
return result
result1 = repeat("cchatlpcat", 2)
result2 = repeat("ccchatalpcatt", 3)
以上两个测试字符串都将返回字符串cat
。
答案 1 :(得分:1)
由于str
是可迭代的,因此您可以轻松地使用Counter
。首先进行设置:
my_count = Counter("cchatlpcat")
然后将所有命中率超过2的字符重新添加到str
中:
''.join(e for e in my_count if my_count[e] >= 2)
联接通过生成器进行操作,其中e
是my_counter
已知的每个键(项目)。 my_count[e]
是项e
在我们设置Counter
的迭代过程中出现多少次的值。
或用repeat
函数编写:
from collections import Counter
def repeat(string, min_count):
my_count = Counter(string)
return ''.join(e for e in my_count if my_count[e] >= min_count)
答案 2 :(得分:0)
def repeat(string, n):
return ''.join(set(filter(lambda letter: string.count(letter) >= n, string)))
由于set()函数,它将返回“ act”(排序的字符串)
def repeat(string, n):
res = ''
filtered = filter(lambda letter: string.count(letter) >= n, string)
for i in filtered:
if i not in res:
res += i
return res
它将返回“ cat”