欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(带思路, 详解) 牛客 HJ59 : 找出字符串中第一个只出现一次的字符

程序员文章站 2022-06-11 10:35:28
...

(带思路, 详解) 牛客 HJ59 : 找出字符串中第一个只出现一次的字符

#include<iostream>
#include<string>

using namespace std;

//思路:
    //先遍历一遍字符串, 给每次出现的字母对应的位置标记
    //再次遍历数组, 找出第一次出现的字母, 返回

void findFirstChar() {
    string s;
    //循环输入, 多组测试用例
    while(cin >> s) {
        //标记数组, 直接128对应ASCII码, 无需计算偏移量
        int count[128] = {0};
        int flag = 0;//是否找到的标记
    
        //第一次循环, 字符对应位置++
        for(auto& ch : s) {
            count[ch]++;
        }
    
        //再次循环, 找到第一个标记为1的字符, 并返回
        for(auto& ch : s) {
            if(count[ch] == 1) {
                //找到了, 标记置1
                flag = 1;
                cout<< ch << endl;
                break;
            }
        }
        //没找到
        if(flag == 0)
        cout << -1 << endl;
    }
}



int main() {
    findFirstChar();
    return 0;
}

相关标签: OJ题目