其他分享
首页 > 其他分享> > 力扣刷题:面试题 01.04. 回文排列

力扣刷题:面试题 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