题解 | #找出字符串中第一个只出现一次的字符#

找出字符串中第一个只出现一次的字符

http://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4

比较笨的解法,(个人感觉用map是较为恰当的方式,参考其他大佬用map的方法)具体思想如下:

第一轮循环:因为ASCII码总共有128个,所以不妨简历一个有128个元素的数组,然后借用HASH访问的思想,为每个字符元素对应的ASCII编码的编号所在的数组元素,对应位置的元素每出现一次,便令数组元素加1

第二轮循环:根据第一轮循环处理过后的数组,按照字符出现的顺序,逐个判断其出现次数,若为1,则找到了第一个总共出现次数只有一次的字符,否则无

#include <iostream>
using namespace std;
 
int main(){
    string str;
    cin >> str;
    string res = "-1";
    int arr[128] = {0};
    int len = str.length();
    for(int i = 0; i < len; i++){
        int number = int(str[i]);
        arr[number]++;
    }
    for(int i = 0; i < len; i++){
        int number = int(str[i]);
        if(arr[number] == 1){
            res = str[i];
            break;
        }
    }
    cout << res << endl;
    return 0;
}
全部评论
如果题解里有空格,或者其他大写字母呢
点赞 回复 分享
发布于 2022-04-02 20:41

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务