70分求调!!!

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

liuyuxiaozaizai @ 2024-08-21 10:51:15

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char n[1110],v[1110]; 
int main(){
    cin.getline(n,1105);
    for (int i=0;i<strlen(n);i++){
        int kg=0;
        for (int j=0;j<strlen(v);j++){
            if (n[i]==v[j]){
                kg=1;
                v[j]='Z';
            }
        }
        if (kg==0){
            v[strlen(v)]=n[i];
        }
    }
    for (int i=0;i<strlen(v);i++){
        if (v[i]!='Z'){
            cout<<v[i];
            return 0;
        }
    }
    cout<<"no";
    return 0;
}

by zhizhenmayixun @ 2024-08-21 11:04:51

@liuyuxiaozaizai

AC代码

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

by WangTianJiao @ 2024-08-21 11:09:53

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char n[1110], v[1110];
int main() {
    cin.getline(n, 1105);
    for (int i = 0; i < strlen(n); i++) {
        int kg = 0;
        for (int j = 0; j < strlen(v); j++) {
            if (n[i] == v[j]) {
                kg = 1;
                v[j] = 'Z';
            }
        }
        if (kg == 0) {
            v[strlen(v)] = n[i];
        }
        ///////////////////日志部分
        for (int j = 0; j < strlen(v);++j) {
            printf("%c ", v[j]);
        }
        cout << endl;
        ///////////////////////
    }
    for (int i = 0; i < strlen(v); i++) {
        if (v[i] != 'Z') {
            cout << v[i];
            return 0;
        }
    }
    cout << "no";
    return 0;
}

@liuyuxiaozaizai

这个算法写的有点抽象

你的意思可能是把之前没出现过的字符挨个装入v数组里面,出现过的就不装,还要把之前那个删掉以免影响最后输出结果。但是如果一个字符出现3次、5次等奇数次,就会装入一次删除一次,最后一次还是装入,答案当然不对。能得70分倒让我很意外

建议你不要修补这个算法,改用简单的用桶统计数目,最后扫描一遍数目,第一个为1的就是结果


|