数组中第K个独一无二的字符串【Leetcode】

题目

独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串。

给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k独一无二的字符串 。如果 少于 k 个独一无二的字符串,那么返回 空字符串 ""

注意,按照字符串在原数组中的 顺序 找到第 k 个独一无二字符串。

解题思路

使用Map统计数组中元素的个数,筛选Map中数量为1的键,将其放入数组中。

实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var kthDistinct = function(arr, k) {
let map = new Map();
let res = [];
for(const i of arr){
map.set(i,(map.get(i)|| 0)+1);
// extra = extra || 0;
// 如果extra 为undefined或者null,false, extra=0 ;否则为原值 --> 很常见的非空判断。
}
console.log(map)
for(const item of map){
console.log(item)
if(item[1] === 1) res.push(item[0]);
}

return res[k-1]||'';

};

知识点 – 常见的非空判断

extra = extra || 0;

如果extraundefined或者null,false, extra=0 ;否则为原值。

文章作者: qinwei
文章链接: https://qw-null.github.io/2022/02/19/数组中第K个独一无二的字符串【Leetcode】/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QW's Blog