C++30分在线求救

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

Eternal_destiny @ 2024-04-14 11:21:08

#include<bits/stdc++.h>
using namespace std;
char s[1101];
int a[26],len;
int main()
{
    cin>>s;
    len=strlen(s);
    for(int i=0;i<len;i++){
        a[s[i]-'a']++;
    }
    for(int i=0;i<len;i++)
    {
        if(a[s[i]-'a']==1)
        {
            cout<<s[i];
            return 0;
        }
        else{
            cout<<"no";
            return 0;
        } 
    }
}

by zsfzhjf @ 2024-04-14 11:26:38

第一个字符也不一定是答案吧


by rzt123 @ 2024-04-14 11:36:02

输出no不应该放在else中,应放在循环外边


by _luogu_huowenshuo_ @ 2024-07-25 15:30:18

桶思想

#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;
}

|