目录
剑指 Offer 50. 第一个只出现一次的字符
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例 1:
输入:s = "abaccdeff"
输出:'b'
示例 2:输入:s = ""
输出:' '来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
思路
创建一个judge数组
因为只包含小写字母,所以最多就是26位,该字母每出现一次该下标所代表的位置的数就加1(都从
0 开始的),所以该下标所代表的位置的数得1,那就表明该字符就出现了一次,只加了一遍
代码
char firstUniqChar(char* s)
{
int len = strlen(s);
int i = 0;
int judge[26] = {0};
for(i = 0; i < len; i++)
{
judge[s[i] - 'a']++;//只包含小写字母,所以最多就是26位,该字母每出现一次该下标所代表的位置的数就加1(都从0 开始的),所以该下标所代表的位置的数得1,那就表明该字符就出现了一次,只加了一遍
}
for(i = 0; i < len; i++)
{
if(judge[s[i] - 'a'] == 1)
{
return s[i];
}
}
return ' ';
}