码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode1400

时间:2020-04-05 09:44:32      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:算法   ash   一个   出现   solution   因此   items   span   奇数   

 1 class Solution:
 2     def canConstruct(self, s: str, k: int) -> bool:
 3         #奇数个字符出现的数量 <= k
 4         #所有的字符的类别数量  >= k
 5         dic = dict()
 6         n = len(s)
 7         for i in range(n):
 8             if s[i] not in dic:
 9                 dic[s[i]] = 1
10             else:
11                 dic[s[i]] += 1
12         #print(dic)
13         count1,count2 = 0,len(s)
14         for _,v in dic.items():
15             if v % 2 == 1:
16                 count1 += 1
17         #print(count1,count2)
18         if count1 <= k and count2 >= k:
19             return True
20         else:
21             return False

算法思路:hash。

出现奇数次的字符,不能和另外的奇数次的字符合并成在一个回文串中。

因此最少能组成的串的个数,不能少于出现奇数次字符的串的个数。

最多能组成的串的个数,不能大于字符串的总长度,即每一个单独字符组成一个回文串。

在这个区间内的k值,就是满足条件的。

leetcode1400

标签:算法   ash   一个   出现   solution   因此   items   span   奇数   

原文地址:https://www.cnblogs.com/asenyang/p/12635712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!