Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
给定一个字符串,确定该字符串的排列是否可以在Java中形成回文_Java_String_Hashmap_Permutation_Palindrome - Fatal编程技术网

给定一个字符串,确定该字符串的排列是否可以在Java中形成回文

给定一个字符串,确定该字符串的排列是否可以在Java中形成回文,java,string,hashmap,permutation,palindrome,Java,String,Hashmap,Permutation,Palindrome,我找到了一个使用HashMap的解决方案,我或多或少了解HashMap和map.getOrDefault()的功能,但在这个特定场景中,我感到困惑。为什么会有一个+1,我们到底在添加什么 public boolean canPermutePalindrome(String s) { HashMap <Character, Integer> map = new HashMap<> (); for (int i = 0; i < s.length();

我找到了一个使用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;
}
public boolean canPermutePalindrome(字符串s){
HashMap=newhashmap();
对于(int i=0;imap.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);基本上所有这些都计算单词的每个字符在单词本身中的次数

这行代码将一个条目放入映射,初始化为1,或者如果已经存在,则递增1。a+1只计算字符的发生率(如果第一次放入映射,则为1;如果角色已经在映射中,则为a+1)

对于一个要回文的单词,每个字符应该是偶数次,最多一个字符可以出现一次