Skip to content

Latest commit

 

History

History
65 lines (51 loc) · 1.61 KB

jz_offer_50_1.md

File metadata and controls

65 lines (51 loc) · 1.61 KB
title description keywords
50. 第一个只出现一次的字符
LeetCode 50. 第一个只出现一次的字符题解,第一个只出现一次的字符,包含解题思路、复杂度分析以及完整的 JavaScript 代码实现。
LeetCode
50. 第一个只出现一次的字符
第一个只出现一次的字符
第一个只出现一次的字符
解题思路
队列
哈希表
字符串
计数

50. 第一个只出现一次的字符

🟢 Easy  🔖  队列 哈希表 字符串 计数  🔗 力扣

题目

某套连招动作记作仅由小写字母组成的序列 arr,其中 arr[i]i 个招式的名字。请返回第一个只出现一次的招式名称,如不存在请返回空格。

示例 1:

输入:arr = "abbccdeff"

输出:'a'

示例 2:

输入:arr = "ccdd"

输出:' '

限制:

  • 0 <= arr.length <= 50000

解题思路

使用哈希表统计每个字符出现的频率,然后再遍历一遍,返回第一个频率为 1 的字符即可,如果没有则返回空格。

代码

/**
 * @param {string} arr
 * @return {character}
 */
var dismantlingAction = function (arr) {
	let count = new Map();
	for (let i of arr) {
		if (count.has(i)) {
			count.set(i, count.get(i) + 1);
		} else count.set(i, 1);
	}
	for (let i of arr) {
		if (count.get(i) == 1) {
			return i;
		}
	}
	return ' ';
};