问题遇到的现象和发生背景
02:找第一个只出现一次的字符
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入
一个字符串,长度小于100000。
输出
输出第一个仅出现一次的字符,若没有则输出no。
样例输入
abcabd
样例输出
c
问题相关代码,请勿粘贴截图
#include<bits/stdc++.h>
using namespace std;
string s;
char c[strlen(s.c_str())]={0};
int a[strlen(s.c_str())]={0};
int cz(int x)
{
for(int i=0;i<strlen(s.c_str());i++)
{
if(c[i]==x)
{
return i;
}
}
return -1;
}
int sc()
{
for(int i=0;i<strlen(s.c_str());i++)
{
if(a[i]==1)
{
cout<<c[i];
return 0;
}
}
cout<<"no";
return 0;
}
int main()
{
getline(cin,s);
int z,g=0;
for(int i=0;i<strlen(s.c_str());i++)
{
if(cz(s[i])==-1);
{
c[g]=s[i];
a[g]=1;
g++;
continue;
}
else
{
a[cz(s[i])]++;
}
}
sc();
return 0;
}
运行结果及报错内容
array bound is not an integer constant before ']' token