【问题标题】:Given a string, determine if a permutation of the string could form a palindrome in Java给定一个字符串,确定字符串的排列是否可以在 Java 中形成回文
【发布时间】:2020-10-23 05:25:44
【问题描述】:

我找到了一个使用 HashMap 的解决方案,并且我或多或少地了解 HashMap 是什么以及 map.getOrDefault() 的作用,但在这种特殊情况下,我很困惑。为什么会有 +1 以及我们要添加的究竟是什么?

public boolean canPermutePalindrome(String s) {
    HashMap <Character, Integer> map = new HashMap<> ();

    for (int i = 0; i < s.length(); i++) {
        map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0) + 1); <-- I need a breakdown of this
    }

    int count = 0;
    for (char key: map.keySet()) {
        count += map.get(key) % 2;
    }
    
    return count <= 1;
}

【问题讨论】:

    标签: java string hashmap permutation palindrome


    【解决方案1】:

    基本上所有这些都会计算单词的每个字符在单词本身中出现的次数。

    那行代码将一个条目放入映射中,将其初始化为 1,如果已经存在则将其递增 1。 'a+1' 只是计算一个字符的出现次数(如果是第一次放入地图,则为 1,如果该角色已经在地图中,则为 a+1)。

    要使一个单词成为回文,每个字符应该是偶数次,并且最多一个字符可以出现一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2023-03-22
      • 2021-10-26
      • 2011-06-15
      • 2015-09-22
      相关资源
      最近更新 更多