80分求助

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

keda2761 @ 2023-01-13 14:29:07

#include<bits/stdc++.h>
using namespace std;
char ch[5005];
int n[5005];
int main(){
    cin>>ch;
    for(int i=0;ch[i]!='\0';i++){
        n[ch[i]-97]++;
    }
    for(int i=0;i<26;i++){
        if(n[i]==1){
            cout<<char(i+97);
            return 0;
        }
    }
    cout<<"no";
    return 0;
}

by keda2761 @ 2023-01-16 09:22:58

#include<bits/stdc++.h>
using namespace std;
char ch[5005];
int n[5005];
int main(){
    cin>>ch;
    for(int i=0;ch[i]!='\0';i++){
        n[ch[i]-97]++;
    }
    for(int i=0;i<strlen(ch);i++){
        if(n[ch[i]-97]==1){
            cout<<ch[i];
            return 0;
        }
    }
    cout<<"no";
    return 0;
}

我原来错的地方是按照字母的顺序输出的,而不是按字符出现的顺序来输出的


上一页 |