题目
剑指 Offer 50. 第一个只出现一次的字符 - 力扣(LeetCode) (leetcode-cn.com)
思路
s
遍历两次数组,第一次遍历数组时用一个中间数组记录数组中字符出现的次数(利用相同字符的ascii值相等,将字符的ascii值作为中间数组的查找指针)第二次遍历数组时,将出现次数为一的字符作为函数返回值即可。(注意特殊情况–空字符串的处理)
代码
char firstUniqChar(char* s){
//先处理特殊情况
if(strlen(s)==0){
return ' ';
}
int temp[256]={0};//存储字符串出现次数的数组
char* find=s;
while((*find)!='\0'){
temp[*find]++;//以字符的ascii码值作为中间数组的指针,以此记录重复字符的次数
find++;
}
find=s;
while((*find)!='\0'){
if(temp[*find]==1){
return *find;
}
find++;
}
return ' ';
}