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

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

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

相关推荐

评论
点赞
收藏
分享

创作者周榜

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