码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Palindrome Permutation

时间:2015-08-21 19:21:54      阅读:439      评论:0      收藏:0      [点我收藏+]

标签:

Just check there are no more than 2 characters that appear an odd number of times in the string.

My C++ code using an array as a hash map is as follows.

1 class Solution {
2 public:
3     bool canPermutePalindrome(string s) {
4         int odd = 0, counts[256] = {0};
5         for (char c : s)
6             odd += ++counts[c] & 1 ? 1 : -1;
7         return odd <= 1;
8     }
9 };

BTW, Stefan has posted many nice solutions here, including the following one that uses bitset.

1 class Solution {
2 public:
3     bool canPermutePalindrome(string s) {
4         bitset<256> b;
5         for (char c : s) b.flip(c);
6         return b.count() < 2;
7     }
8 };

 

[LeetCode] Palindrome Permutation

标签:

原文地址:http://www.cnblogs.com/jcliBlogger/p/4748554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!