80分求助

B2110 找第一个只出现一次的字符

Amberhart @ 2023-08-11 11:05:53

#include <bits/stdc++.h>
using namespace std;
string s;
int a[1110];
int main(){
    cin>>s;
    for(int i=0;i<s.size();i++){
        a[s[i]]++;
    }
    for(int i='a';i<='z';i++){
        if(a[i]==1){
            cout<<char(i);
            return 0;
        }
    }
    cout<<"no";
    return 0;
}

by Amberhart @ 2023-08-11 11:07:24

马蜂丑轻喷((


by NightDiver @ 2023-08-11 11:12:16

@Amberhart

对于字符串za,第一个只出现一次的字母是z,而你会输出a

你的程序给出的是只出现一次的字母中字典序最小的那一个


by linzhanjing @ 2023-08-11 11:13:50

...这丑吗?


by Amberhart @ 2023-08-11 11:13:51

@NightDiver 哦吼我晓得了,我在调下代码


by Amberhart @ 2023-08-11 11:14:06

@linzhanjing 额(


by Weizhuo_Zhao @ 2023-08-11 11:14:38

@Amberhart 你说有没有一种可能,有两个只有1次出现的?


by Amberhart @ 2023-08-11 11:15:56

@Weizhuo_Zhao 有啊,我return 0


by Weizhuo_Zhao @ 2023-08-11 11:18:11

@Amberhart 所以把哪个讨厌的return 0;去了!好好判断字典序!


by Amberhart @ 2023-08-11 11:18:51

@Weizhuo_Zhao 额我试试


by Weizhuo_Zhao @ 2023-08-11 11:21:18

@Amberhart 建议用string+map映射


| 下一页