@ninijia 在 Leetcode每日一题练习 ------ 1400. 构造 K 个回文字符串 中发帖
从Leetcode 每日一题练习继续讨论:
1400. 构造 K 个回文字符串
1400. Construct K Palindrome Strings
题解
本题考虑如何构造回文字符串,注意单独的一个字符满足回文字符串的要求,因此如果想获得最多的回文串可以直接将整个字符串全部拆分为单个字符,就可以得到由单个字符组成的字符串长度个数的回文串,因此可以用贪心法,一个一个的取回文串,再将剩余的全部字符作为一个回文串。
但要注意,字符能构造成回文串的前提是剩余的字符中每个字符的个数中最多只有一个字符个数是奇数,如果多个字符个数是奇数则无法构成回文串,因为两个奇数的字符必定不能对称分布,因此可以统计出所有为奇数的字符再根据k从这些奇数字符中挨个取出一个使其变为偶数直到取到第k个,此时如果剩余字符满足不超过一个字符是奇数则可以构造出k个回文串,否则不能。也就是说,如果为奇数的字符个数小于等于...