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:
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:
Input: s = "leetcode", k = 3 Output: false Explanation: It is impossible to construct 3 palindromes using all the characters of s.
思路:统计oddnum,k个palindrome,奇数的char不能超过k,同时k不能大于str.length();
class Solution {
public boolean canConstruct(String s, int k) {
int[] count = new int[26];
for(int i = 0; i < s.length(); i++) {
count[s.charAt(i) - 'a']++;
}
int oddnum = 0;
for(int i = 0; i < count.length; i++) {
if(count[i] % 2 != 0) {
oddnum++;
}
}
return oddnum <= k && k <= s.length();
}
}