力扣刷题:面试题 01.04. 回文排列
作者:互联网
题目描述:
解题思路:
/**
* @param {string} s
* @return {boolean}
*/
var canPermutePalindrome = function (s) {
// 定义一个对象,统计所有字符出现的次数
var obj = {};
// 统计字符出现次数余数为1出现的次数
var sum = 0;
for (i of s) {
if (obj[i]) {
obj[i]++
} else {
obj[i] = 1;
}
}
for (i in obj) {
if (obj[i] % 2 == 1) {
sum++;
}
}
// 如果字符串的长度是偶数,那么字符出现的次数不能出现余数为1,不然就构不成回文数
if (s.length % 2 == 0) {
return sum == 0
}
// 剩下的情况就是长度为奇数了,奇数的情况下,只允许一个字符有余数为1的情况,大于一个字符均构不成回文数
return sum == 1;
};
运行结果:
标签:字符,面试题,obj,sum,力扣,01.04,余数,var,return 来源: https://blog.csdn.net/weixin_41423327/article/details/121435308