tyt_ @ 2024-10-24 18:33:22
求调
#include<bits/stdc++.h>
using namespace std;
int a[146];
int main(){
string n;
cin>>n;
int lenn=n.size();
for(int i=1;i<=lenn;i++){
a[int(n[i])]++;
}
for(int i=1;i<=146;i++){
if(a[i]==1) cout<<char(i);
return 0;
}
cout<<"no";
}
by ccch1ennn @ 2024-10-24 18:37:55
把 return 0
包在if(a[i]==1)
里面
by tyt_ @ 2024-10-24 18:40:14
@ccch1ennn 还是不行啊
by Ybll_ @ 2024-10-24 18:50:11
@tyt_ 第一个出现一次的字母
#include<bits/stdc++.h>
using namespace std;
int a[30];
int main() {
string n;
cin>>n;
int lenn=n.size();
for(int i=0; i<lenn; i++) {
a[n[i]-'a']++;
}
for(int i=0; i<lenn; i++) {
if(a[n[i]-'a']==1) {
cout<<n[i];
return 0;
}
}
cout<<"no";
return 0;
}
by lixiangthinker @ 2024-10-24 18:50:57
把第9行改成a[n[i]-'a'+1];,12行的输出改成cout << char(i+'a');,再加上楼上的就行了
by ccch1ennn @ 2024-10-24 18:51:37
#include<bits/stdc++.h>
using namespace std;
int a[200];
int main(){
string n;
cin>>n;
int lenn=n.size();
for(int i=0;i<lenn;i++){
a[int(n[i])]++;
}
for(int i=0;i<lenn;i++){
if(a[int(n[i])]==1) {
cout<<n[i];
return 0;
}
}
cout<<"no";
}
1.遍历字符串时,字符是从0开始一直到lenn-1的 2.顺序是原字符串的顺序,不是字典序
by tyt_ @ 2024-11-04 18:53:17
@Ybll_ 谢谢
by tyt_ @ 2024-11-04 18:53:47
@ccch1ennn 谢谢大佬,我懂了