找第一个只出现一次的字符
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入
一个字符串,长度小于100000。
输出
输出第一个仅出现一次的字符,若没有则输出no。
样例输入
abcabd
样例输出
c
思路
1.输入只有小写字母,使用字符数组输入即可。使用strlen()确定字符串长度。
char a[100000];
cin>>a;
int len=strlen(a);
2.若输入只有一个字符,直接输出即可。
if(len==1)
{
cout<<a;
return 0;
}
3.使用for循环确定字符是否有重复
for(int i=0;i<len;i++)
{
x=a[i];
for(int j=0;j<len;j++)
{
if(a[j]==x&&j!=i)//重复时跳出循环。j!=i防止与自身比较导致跳出循环
break;
if(j==len-1)//整个字符串中无相同字符时输出该字符
{
cout<<a[i];
return 0;
}
}
}
提交代码(C++)
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[100000];
cin>>a;
int x, len=strlen(a);
if(len==1)
{
cout<<a;
return 0;
}
for(int i=0;i<len;i++)
{
x=a[i];
for(int j=0;j<len;j++)
{
if(a[j]==x&&j!=i)
break;
if(j==len-1)
{
cout<<a[i];
return 0;
}
}
}
cout<<"no";
return 0;
}