leetcode-第一个只出现一次的字符-65

Posted 天津 唐秙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-第一个只出现一次的字符-65相关的知识,希望对你有一定的参考价值。

题目要求
  在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

思路
  申请一个字符ret为一个空格,如果s为空,ret不会被修改,最终返回。因为字母一共就26个,所以我们创建一个数组,空间为26个int类型,初始化为0,利用ascll表中字母减a的ascll值为数字,作为对应字母的下标,采用类似计数排序的方式记录字母出现的次数,然后再遍历一次字符串,找对应字母在数组中的计数,第一个为1的字母存到ret中返回,或者没有也返回ret。

代码实现

class Solution {
public:
    char firstUniqChar(string s) {
        char ret = ' ';
		vector<int> ans(26, 0);
		for (char e : s)
			ans[e - 'a']++;
		for (char e : s)
		{
			if (ans[e - 'a'] == 1)
			{
				ret = e;
				break;
			}
		}
		return ret;
    }
};

以上是关于leetcode-第一个只出现一次的字符-65的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(剑指 Offer)- 50. 第一个只出现一次的字符

[LeetCode]剑指 Offer 50. 第一个只出现一次的字符

Leetcode——第一个只出现一次的字符

33 第一个只出现一次的字符+ASCII码

剑指offer之第一个只出现一次的字符

Leetcode刷题100天—剑指 Offer 50. 第一个只出现一次的字符(队列)—day13