蒟蒻求助,80分

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

xiexiaoyuawa @ 2023-09-20 20:30:25

5和7爆了

#include <iostream>
#include <string>
using namespace std;

int cnt;

int main(){
    string str;cin>>str;
    char c = 0;
    for(c = 'a';c <= 'z';c++){
        cnt = 0;
        for(int i = 0;i < str.size();i++){
            if(str[i] == c)cnt++;
        }
        if(cnt == 1)break;
    }
    if(c == 'z' + 1)cout<<"no";
    else cout<<c;
}

by xQWQx @ 2023-09-20 20:44:09

@xiexiaoyuawa

你这个是从a到z查找

如果输入的是: cba

那会输出a

所以你这个要改

您稍等一下,我改改


by xQWQx @ 2023-09-20 20:58:04

@xiexiaoyuawa

#include <iostream>
#include <string>
using namespace std;

int cnt;

int main(){
    string str;
    cin>>str;
    char c=0,t;
    int x=1101,k=0;
    for(c='a';c<='z';c++){
        int xb;
        cnt=0;
        for(int i=str.size()-1;i>=0;i--){
            if(str[i]==c){
                cnt++;
                xb=i;
            }
        }
        if(cnt==1&&xb<x){
            x=xb;
            t=char(c);
            k=1;
        }
    }
    if(k==0)cout<<"no";
    else cout<<t;
}

这是改的你的,加一个下标就可以了

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

再送你个桶排的


by xQWQx @ 2023-09-20 20:59:25

@xiexiaoyuawa

如果有不懂可以问我或私信

求个小小关QWQ


by xiexiaoyuawa @ 2023-09-22 19:52:06

@C112345565 谢谢!


|