387.字符串中的第一个唯一字符

时游小于 1 分钟LeetCode

387.字符串中的第一个唯一字符

/*
 * @lc app=leetcode.cn id=387 lang=typescript
 *
 * [387] 字符串中的第一个唯一字符
 */

// @lc code=start
function firstUniqChar(s: string): number {
	let map = new Map<string, number>();
	for (let i = 0; i < s.length; i++) {
		let has = map.has(s[i]);
		if (has) {
			map.set(s[i], (map.get(s[i]) ?? 0) + 1);
		} else {
			map.set(s[i], 1);
		}
	}

	if ([...map.values()].includes(1)) {
		// 存在时找第一个1索引
		let firstOne = [...map.values()].indexOf(1);
		// 找到对应元素
		let firstKey = [...map.keys()][firstOne];
		// 返回其在字符串中位置
		return s.indexOf(firstKey);
	}
	return -1;
}

console.log(firstUniqChar("loveleetcode"));

// @lc code=end

上次编辑于:
贡献者: 15327360835
Loading...