266. Palindrome Permutation

Given a string s, return true if a permutation of the string could form a palindrome.

Example 1:

Input: s = "code"
Output: false

Example 2:

Input: s = "aab"
Output: true

Example 3:

Input: s = "carerac"
Output: true

Constraints:

  • 1 <= s.length <= 5000
  • s consists of only lowercase English letters.

Solution

class Solution {
    public boolean canPermutePalindrome(String s) {
        int[] freq = new int[256];
        for (char c: s.toCharArray()) {
            freq[c]++;
        }
        int count = 0;
        for (int f: freq) {
            count += f % 2;
        }
        return count <= 1;
    }
}