我是靠谱客的博主 舒适果汁,这篇文章主要介绍javascript解力扣面试题 01.04. 回文排列,现在分享给大家,希望可以做个参考。

面试题 01.04. 回文排列

题目描述

复制代码
1
2
3
4
5
6
7
8
面试题 01.04. 回文排列 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 示例1: 输入:"tactcoa" 输出:true(排列有"tacocat""atcocta",等等)

解法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var canPermutePalindrome = function(s) { // 方法1:Set不停更新奇数个字母的大小 // 执行用时:68 ms, 在所有 JavaScript 提交中击败了72.67%的用户 // 内存消耗:37.8 MB, 在所有 JavaScript 提交中击败了53.56%的用户 if (s.length === 0) return false; const set = new Set(); for (const i of s) { if (set.has(i)) { set.delete(i); } else { set.add(i); } } return set.size <= 1; // 方法2:Map记录每个字母出现次数,奇数字母只能最多出现一次 // 执行用时:72 ms, 在所有 JavaScript 提交中击败了47.56%的用户 // 内存消耗:37.1 MB, 在所有 JavaScript 提交中击败了98.44%的用户 if (s.length === 0) return false; const map = new Map(); for (const e of s){ map.set(e, (map.get(e) || 0) + 1); } return [...map].filter(i => i[1] %2 === 1).length <= 1; };

最后

以上就是舒适果汁最近收集整理的关于javascript解力扣面试题 01.04. 回文排列的全部内容,更多相关javascript解力扣面试题内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部