gold-1-4


给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。

回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。

回文串不一定是字典当中的单词。

示例1:

输入:"tactcoa"
输出:true(排列有"tacocat"、"atcocta",等等)

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean canPermutePalindrome(String s) {
        Map<Character, Integer> chMap = new HashMap<>();

        if (s == null || s.length() == 0) {
            return true;
        }

        for (char ch : s.toCharArray()) {
            int curNum = chMap.getOrDefault(ch, 0);
            chMap.put(ch, curNum + 1);
        }

        int oddNum = 0;

        for (int num : chMap.values()) {
            if (num % 2 == 1) {
                oddNum++;
            }
            if (oddNum > 1) {
                return false;
            }
        }

        return true;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

文章作者: 倪春恩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 倪春恩 !