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();
}
}
本文介绍了一种算法,用于判断是否能利用给定字符串中的所有字符构建k个回文串。通过统计字符串中各字符出现次数的奇偶性来确定可能性,并提供了具体的实现代码。
349

被折叠的 条评论
为什么被折叠?



