创建返回字符串中重复字符的函数

时间:2019-02-02 23:13:26

标签: java

我正在尝试创建一个函数,该函数将字符串作为输入,并返回一个字符串,该字符串至少按输入顺序n出现在输入字符串中的所有字符组成。

例如,repeat("cchatlpcat", 2)将返回字符串cat

3 个答案:

答案 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)

联接通过生成器进行操作,其中emy_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”