LeetCode266. Palindrome Permutation
2017-01-05 07:36
393 查看
Problem Description:
Given a string, determine if a permutation of the string could form a palindrome.
For example, “code” -> False, “aab” -> True, “carerac” -> True.
思路:
1. 需要提取保存的信息:每个字符出现的频率
2. 用hashtable统计每一个字符出现次数,如果最多只有一个字符出现次数为奇数,其他字符次数为偶数,则permutation可以form a palindrome.
4000
Given a string, determine if a permutation of the string could form a palindrome.
For example, “code” -> False, “aab” -> True, “carerac” -> True.
思路:
1. 需要提取保存的信息:每个字符出现的频率
2. 用hashtable统计每一个字符出现次数,如果最多只有一个字符出现次数为奇数,其他字符次数为偶数,则permutation可以form a palindrome.
class Solution { public: bool canPermutePalindrome(string s) { //方法1:比较复杂 vector<int> count(256,0); for(auto&k:s){ if(count[k]==0) count[k]=1; else count[k]=0; } int num=0; for(int i=0;i<256;i++){ if(count[i]) num++; if(num>1) return false; } return true; } }; class Solution { public: bool canPermutePalindrome(string s) { //方法2:用bool优化,同时合并两个for vector<bool> count(256,0); for(auto&k:s){ count[k]=!count[k]; num=num+count[k]?1:-1; } return num<=1; } };
4000
相关文章推荐
- C#中遍历Hashtable的4种方法
- C#将HashTable中键列表或值列表复制到一维数组的方法
- 详解如何选择使用ArrayList、HashTable、List、Dictionary数组
- C#中哈希表(HashTable)用法实例详解(添加/移除/判断/遍历/排序等)
- asp.net基于HashTable实现购物车的方法
- 详解C#中HashTable的用法
- JAVASCRIPT HashTable
- js实现hashtable的赋值、取值、遍历操作实例详解
- java HashMap和HashTable的区别详解
- java hashtable实现代码
- java面试题――详解HashMap和Hashtable 的区别
- java中vector与hashtable操作实例分享
- js实现HashTable(哈希表)的实例分析
- Java中HashMap和Hashtable的区别浅析
- C#将hashtable值转换到数组中的方法
- c语言实现的hashtable分享
- 利用C语言实现HashTable
- php中hashtable实现示例分享
- java使用Hashtable过滤数组中重复值的方法
- HashMap 和 Hashtable的区别