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

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

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

字符的数字范围是0~128,因此创建一个128大小的数组来记录每一个字符出现的次数就ok了,其实不难的。

#include <bits/stdc++.h>
using namespace std;
//大小写字母之间数字差32
// A-Z 65~90
// a-z 97~122
// '0'~'9' 48-57

void findfirstChar(string s) {
    int strnum[128] = {0};
    int size = s.size();
    char goal;
    for(int i = 0; i < size; i++) {
        strnum[s[i]]++;
    }
    for(int i = 0; i < size; i++) {
        if(strnum[s[i]] == 1) {
            goal = s[i];
            break;
        }
    }
    if(goal != NULL) {
        cout << goal <<endl;
    }
    else {
        cout << -1 <<endl;
    }
}




int main() {
    string s;
    getline(cin, s);
    findfirstChar(s);
    return 0;
}
全部评论
这题搞得这么麻烦吗,哈希表统计就完了
1 回复 分享
发布于 2022-03-27 20:10

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
昨天 22:59
东华大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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