Python程序:检查能否从给定字符串字符中创建k个回文?


假设我们有一个字符串s和另一个数字k,我们必须检查是否可以使用s中的所有字符创建k个回文。

因此,如果输入类似于s = "amledavmel" k = 2,则输出将为True,因为我们可以创建"level"和"madam"。

为了解决这个问题,我们将遵循以下步骤:

  • d := 一个存储每个唯一字符及其频率的映射

  • cnt := 0

  • 对于d中的每个键,执行:

    • 如果d[key]是奇数,则

      • cnt := cnt + 1

    • 如果cnt > k,则

      • 返回False

  • 返回True

让我们看看下面的实现,以便更好地理解。

示例

from collections import Counter

class Solution:
   def solve(self, s, k):
      d = Counter(s)
         cnt = 0
         for key in d:
            if d[key] & 1:
               cnt += 1
            if cnt > k:
               return False
         return True

ob = Solution()
s = "amledavmel"
k = 2
print(ob.solve(s, k))

输入

"amledavmel",2

输出

True

更新于:2020年11月10日

148 次浏览

开启你的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.