解题思路:
注意事项:
参考代码:
//题目描述
//给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。
//如果没有,输出no。
//输入格式
//一个字符串,长度小于100000。
//输出格式
//输出第一个仅出现一次的字符,若没有则输出no。
//样例输入
//abcabd
//样例输出
//c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void)
{
char ch[1000000] = { 0 };
gets(ch);//输入ch
char letter[26] = { 0 };
int count[26] = { 0 };
char letteronce[26] = { 0 };
for (int i = 0; i < 25; i++)
{
letter[0] = 97;
letter[i + 1] = letter[i] + 1;
}//将数组初始化为a-z
int t = 0;
int n = 26;
int len = strlen(ch);
for (int i = 0; i < len; i++)//遍历输入的字符串
{
int s ;
for ( s = 0; s < 26; s++)
{
if (ch[i] == letter[s])
{
count[s]++;
break;
}//找到对应字母,并记录其次数
}
if (count[s] == 1)
letteronce[t++] = letter[s];//次数为1,将其记入可变字符串
if (count[s] == 2)
{
int m;
for (m = 0; m < 26; m++)
if (letteronce[m] == letter[s])
{
letteronce[m] = 0;
break;
}
n--;
}//次数为2时,将可变字符串中对应字母变为0,总次数减一
if (n == 0)
break;
}
if (n == 0)
printf("no");
else
{
for (int s = 0; s < 26; s++)
{
if (letteronce[s] != 0)
{
printf("%c", letteronce[s]);
break;
}
if (s == 25)
printf("no");
}
}
return 0;
}
0.0分
1 人评分
C二级辅导-求偶数和 (C语言代码)浏览:639 |
不知道哪里错了浏览:1145 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:1121 |
ASCII帮了大忙浏览:749 |
数组输出 (C语言代码)--此题的题目描述有问题浏览:1817 |
WU-格式化数据输出 (C++代码)浏览:1212 |
【矩阵】 (C++代码)浏览:950 |
完数 (C语言代码)浏览:693 |
矩阵乘方 (C语言代码)浏览:1031 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:564 |