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. 第一个只出现一次的字符