1502 Construct K Palindrome Strings
1502 Construct K Palindrome Strings
Construct K Palindrome Strings 
Given a string s and an integer k, return true if you can use all the characters in *s to construct k palindrome strings or false otherwise*.
Example 1:
1
2
3
4
5
6
**Input:** s = "annabelle", k = 2
**Output:** true
**Explanation:** You can construct two palindromes using all characters in s.
Some possible constructions "anna" + "elble", "anbna" + "elle", "anellena" + "b"
Example 2:
1
2
3
4
5
**Input:** s = "leetcode", k = 3
**Output:** false
**Explanation:** It is impossible to construct 3 palindromes using all the characters of s.
Example 3:
1
2
3
4
5
**Input:** s = "true", k = 4
**Output:** true
**Explanation:** The only possible solution is to put each character in a separate string.
Constraints:
1
2
3
1 <= s.length <= 105
s consists of lowercase English letters.
1 <= k <= 105
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution:
def canConstruct(self, s: str, k: int) -> bool:
dt = {}
count_one = 0
for m in s:
if m not in dt:
dt[m] = 0
dt[m] += 1
for v in dt.values():
if v % 2 == 1:
count_one += 1
if k > len(s) or k - count_one < 0:
return False
return True
This post is licensed under CC BY 4.0 by the author.