难度

简单

标签

哈希表、字符串

题目描述

给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。
回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。
回文串不一定是字典当中的单词。

示例1:

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

**

题解

1. 哈希表

  1. import java.util.HashMap;
  2. class Solution {
  3. public boolean canPermutePalindrome(String s) {
  4. HashMap<Character, Integer> map = new HashMap<>();
  5. for(int i = 0; i < s.length(); i++) {
  6. char cur = s.charAt(i);
  7. if(map.containsKey(cur) && map.get(cur) == 1) {
  8. map.remove(cur);
  9. } else {
  10. map.put(cur, 1);
  11. }
  12. }
  13. return map.size() <= 1;
  14. }
  15. }