为什么会错?80分

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

kuikuidadi @ 2023-01-28 10:58:12

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int b[205];
    memset(b,0,sizeof(b));
    cin>>s;
    for(int i=0;i<s.size();i++){
       b[int(s[i])]++;
    }
    for(int i=96;i<=200;i++){
        if(b[i]==1){
            cout<<char(i); 
            return 0;
        }
    }
    cout<<"no";
}

by Rosaya @ 2023-01-28 11:03:04

@Lac12345 题目说的是找到字符串中第一个,但是您求的是字典序最小的一个。


by juruo_zxt @ 2023-01-28 11:05:11

@Lac12345 楼上正解,所以需要把第二个循环改为遍历s


by PineappleSummer @ 2023-01-28 11:05:11

@Lac12345 给您改过了

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int b[205];
    memset(b,0,sizeof(b));
    cin>>s;
    for(int i=0;i<s.size();i++){
       b[int(s[i])]++;
    }
    for(int i=0;i<s.size();i++){
        if(b[int(s[i])]==1){
            cout<<s[i]; 
            return 0;
        }
    }
    cout<<"no";
}

by kuikuidadi @ 2023-01-28 11:07:24

谢谢!!


|