0分,代码求调

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

tr_712_11 @ 2024-07-07 11:29:36

样例都过了,但不知为啥0分(代码:)

//万能头文件 
#include<bits/stdc++.h>
//使用std的命名空间 
using namespace std;
//定义常量 

//全局变量 
string arr; 
int brr[125];
//定义结构体 //struct

//定义函数

//主函数 
int main(){
    //输入
    cin >> arr;
    //主程序
    for (int i=0;i<arr.size();i++){
        brr[(int)(arr[i])]++;
    }
    //输出(与return 0;空开一行) 
    for (int i=0;i<arr.size();i++){
        if (brr[(int)(arr[i])]%2!=0){
            cout << arr[i];
            return 0;
        }
    }
    cout << "no";

    return 0;

}

by GreenMelon @ 2024-07-07 11:39:06

输出部分的第二行同一个字符可能出现 3 次,应该把 if (brr[(int)(arr[i])]%2!=0) 改成 if (brr[(int)(arr[i])]%2==1)


by GreenMelon @ 2024-07-07 11:40:16

@ym_612_09


by zouxishengcsh @ 2024-07-07 11:50:21

你可以一个个判断 be like : int q[50000] for(int i=0;i<arr.size();i++){ int y=0; for(intw=0;w<arr.size();w++){ if(arr[i]==arr[w]){ y++; } q[i]=y;
}//找到该数组一样的字符 for(int i=0;i<arr.size();i++){ if(y<2){ cout<<<arr[i]; return 0;//找到第一个只重复一次的字符(因为有有它自己) } }


by zouxishengcsh @ 2024-07-07 11:51:41

@zouxishengcsh 判断里的y改成q[i]


by tr_712_11 @ 2024-07-07 13:37:29

ok @GreenMelon @zouxishengcsh


by tr_712_11 @ 2024-07-07 13:38:54

@GreenMelon 应该是if (brr[(int)(arr[i])]==1)吧?


by tr_712_11 @ 2024-07-07 13:40:11

AC了,谢谢两位dalao,此帖结


|