标签:
/* *266. Palindrome Permutation *2016-6-24 by Mingyang *这个题目很简单的用Hashmap来计算,而高手用的是HashSet来做,遇到一样的,就remove,从没出现的就Add *不过自己的代码还借鉴了如何loop hashmap的value */ public boolean canPermutePalindrome(String s) { int len=s.length(); if(s==null||len==0) return true; Map<Character,Integer> map=new HashMap<Character,Integer>(); for(int i=0;i<len;i++){ char a=s.charAt(i); if(map.containsKey(a)){ map.put(a,map.get(a)+1); }else{ map.put(a,1); } } int count=0; for (Integer value : map.values()) { if(value%2!=0){ count++; if(count>1) return false; } } return true; } //然而看了大神的答案,果然非常佩服大神的思维,灵活使用HashSet public boolean canPermutePalindrome1(String s) { Set<Character> set=new HashSet<Character>(); for(int i=0; i<s.length(); ++i){ if (!set.contains(s.charAt(i))) set.add(s.charAt(i)); else set.remove(s.charAt(i)); } return set.size()==0 || set.size()==1; }
标签:
原文地址:http://www.cnblogs.com/zmyvszk/p/5615833.html