#include
#include
#include
using namespace std;
int main(){
char a[100000];
int count=0;
fgets(a,100000,stdin);
for(int i=0;i<100000;i++){
int flag=1;
if(a[i]=='\0') break;
for(int j=0,len=strlen(a);jif(i==j) continue;
if(a[i]==a[j]){
flag=0;
break;
}
}
if(flag=1){
cout << a[i] << endl;
count++;
}
}
if(count==0) cout << "no" << endl;
}
运行不正确是啥现象啊
a数组建议放到main函数外,作为全局变量,申请的空间大了
22行写错了,应该是if(flag == 1)
你这代码肯定是不行的,双循环肯定超时,修改如下:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char s[100000];
int c[26] = {0};
int main(){
fgets(s,100000,stdin);
int i=0;
while(s[i] != '\0')
{
if(c[s[i]-'a'] == 0)
c[s[i]-'a'] = i+1;
else
c[s[i]-'a'] = 0;
i++;
}
int minPos = 100000;
for(i=0;i<26;i++)
{
if(c[i] != 0)
{
if(c[i] < minPos)
minPos = c[i];
}
}
if(minPos == 100000)
cout<<"no";
else
cout<<s[minPos-1];
return 0;
}
if(flag=1)
改为
if(flag==1)
低级错误