18861010618Z @ 2023-07-26 18:19:15
#include<bits/stdc++.h>
using namespace std;
int a[1111],t=0,k=1;
string s;
int main() {
getline(cin,s);
for(int i=0; i<=s.size(); i++) {
a[s[i]]++;
t++;
}
for(int i=0; i<=t; i++){
if(a[s[i]]==1) {
cout<<s[i]<<endl;
int k=2;
break;
}
}
if(k==1)cout<<"no";
return 0;
}
输出不了No
by wrkwrkwrk @ 2023-07-26 18:20:36
@18861010618Z 不应该是
a[s[i]]==2
吗?
by 18861010618Z @ 2023-07-26 18:24:02
@wrkwrkwrk 还是不对
by wrkwrkwrk @ 2023-07-26 18:25:29
@18861010618Z 不好意思看错题了
by wrkwrkwrk @ 2023-07-26 18:26:38
@18861010618Z 我再次运行了你的程序,当输入为两个a的时候输出no,不知道你什么数据被hack掉了
by 18861010618Z @ 2023-07-26 18:27:34
@wrkwrkwrk 没事,再帮我看看呗。
by tyy6034 @ 2023-07-26 18:27:41
输入时直接cin就行了,不用getline
枚举i时应该i<s.size()
用不着k直接return 0结束程序
找不到只出现一次的直接输出no,不用判断
#include<bits/stdc++.h>
using namespace std;
int a[1111],k=1;
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]<<endl;
return 0;
}
}
cout<<"no"<<endl;
return 0;
}
by 18861010618Z @ 2023-07-26 18:29:31
@wrkwrkwrk 大佬求解。
by 18861010618Z @ 2023-07-26 18:35:18
@tyy6034 感激不尽,全AC了;
by zhongboxuan123 @ 2023-07-26 18:36:06
@18861010618Z 有个问题,你要搞清楚字符串的下标是从0到size-1,你的
#include<bits/stdc++.h>
using namespace std;
int a[1111];
string s;
int main() {
cin >> s;
for(int i=0; i<s.size(); i++) {
a[s[i]]++;
}
bool flag = 0;
for(int i=0; i < s.size(); i++){
if(a[s[i]]==1) {
cout<<s[i]<<endl;
flag = 1;
break;
}
}
if(!flag) cout<<"no";
return 0;
}
by 18861010618Z @ 2023-07-26 18:36:47
@wrkwrkwrk 十分感谢 题已解