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

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

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

相关推荐

但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务