80分,请大佬看看

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

NorlandAlice @ 2024-06-29 08:36:53

#include<bits/stdc++.h>
using namespace std;
int main(){
int j[26]={0};
bool s=1;
string a;
char q='a';
getline(cin,a);
for(int i=0;i<a.size();i++)j[a[i]-97]++;
for(int i=0;i<26;i++){if(j[i]==1){cout<<(char)(q+i);s=0;return 0;}}
if(s)cout<<"no";
return 0;}

by losti @ 2024-06-29 08:45:59

@NorlandAlice 建议修改码风,头有些晕


by juruolaidayang_AKIOI @ 2024-06-29 08:53:05

@NorlandAlice
我稍微修改了一下,看不懂私信我

#include<bits/stdc++.h>
using namespace std;
int main(){
int j[26]={0};
bool s=1;
string a;
char q='a';
getline(cin,a);
for(int i=0;i<a.size();i++)j[a[i]-97]++;
for(int i=0;i<a.size();i++){if(j[a[i]-97]==1){cout<<a[i];s=0;return 0;}}
if(s)cout<<"no";
return 0;
}

by FXLIR @ 2024-06-29 09:02:57

@NorlandAlice 题目是找字符串里第一个只出现一次的字符,不是按字典序,但你写的是找按字典序第一个只出现一次的字符……

hack:

in:

zabbc

out:

z

by NorlandAlice @ 2024-06-29 09:05:05

@FXLIR 懂了懂了,谢谢


by FXLIR @ 2024-06-29 09:06:22

@NorlandAlice 另外真的不考虑改改码风吗……


by _luogu_huowenshuo_ @ 2024-07-25 15:28:24

简单的桶思想代码

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

|