题目
给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。
回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。
回文串不一定是字典当中的单词。
题解
思路:字符串中的字符出现都是偶数次或者只有一个字符出现奇数次
public class Solution {
public bool CanPermutePalindrome(string s) {
//char[] schar = s.ToCharArray();
var schar = s.ToList().GroupBy(i=>i);//Attention Plz!!!
int sum = 0;
foreach (var item in schar)
{
if (item.Count()==1 || item.Count()%2==1)
{
sum++;
}
}
return sum<=1;
}
}
知识点
Count()
开局尝试了用字符数组:char[] schar = s.ToCharArray()
但是字符数组不能使用Count方法
通过的方法中,先将字符串转换成List,然后将其排序之后可以使用Count()方法。