返回介绍

solution / 0200-0299 / 0266.Palindrome Permutation / README_EN

发布于 2024-06-17 01:04:02 字数 2913 浏览 0 评论 0 收藏 0

266. Palindrome Permutation

中文文档

Description

Given a string s, return true _if a permutation of the string could form a __palindrome__ and _false_ otherwise_.

 

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.

Solutions

Solution 1

class Solution:
  def canPermutePalindrome(self, s: str) -> bool:
    return sum(v & 1 for v in Counter(s).values()) < 2
class Solution {
  public boolean canPermutePalindrome(String s) {
    int[] cnt = new int[26];
    for (char c : s.toCharArray()) {
      ++cnt[c - 'a'];
    }
    int odd = 0;
    for (int x : cnt) {
      odd += x & 1;
    }
    return odd < 2;
  }
}
class Solution {
public:
  bool canPermutePalindrome(string s) {
    vector<int> cnt(26);
    for (char& c : s) {
      ++cnt[c - 'a'];
    }
    int odd = 0;
    for (int x : cnt) {
      odd += x & 1;
    }
    return odd < 2;
  }
};
func canPermutePalindrome(s string) bool {
  cnt := [26]int{}
  for _, c := range s {
    cnt[c-'a']++
  }
  odd := 0
  for _, x := range cnt {
    odd += x & 1
  }
  return odd < 2
}
function canPermutePalindrome(s: string): boolean {
  const cnt: number[] = new Array(26).fill(0);
  for (const c of s) {
    ++cnt[c.charCodeAt(0) - 97];
  }
  return cnt.filter(c => c % 2 === 1).length < 2;
}
/**
 * @param {string} s
 * @return {boolean}
 */
var canPermutePalindrome = function (s) {
  const cnt = new Array(26).fill(0);
  for (const c of s) {
    ++cnt[c.charCodeAt() - 'a'.charCodeAt()];
  }
  return cnt.filter(c => c % 2 === 1).length < 2;
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文