题目描述
找出字符串中第一个只出现一次的字符
如果无此字符 请输出'.'
输入描述:
输入一串字符,由小写字母组成
输出描述:
输出一个字符
输入例子:
asdfasdfo
输出例子:
o
思路:
数组s记录出现的字母顺序。time数组记录出现的次数,每个char对应一个int型,,,所以,字母a出现的次数可以直接用time['a']表示。
AC代码:
1 #include "iostream" 2 #include "string.h" 3 #define MAX 201 4 using namespace std; 5 6 char FindChar(char* pInputString) 7 { 8 char s[26];//字母出现的顺序 9 int time[MAX] = {0};//字母出现的次数 10 int t = 0; 11 char ans; 12 13 for (int i = 0; i < strlen(pInputString); i++) 14 { 15 if (time[pInputString[i]] == 0) 16 { 17 s[t] = pInputString[i]; 18 t++; 19 } 20 21 time[pInputString[i]] ++; 22 } 23 24 for (int i = 0; i < t; i++) 25 { 26 if (time[s[i]] == 1) 27 { 28 ans = s[i]; 29 return ans; 30 } 31 } 32 33 return '.'; 34 } 35 36 int main() 37 { 38 char a[MAX]; 39 char p; 40 41 while (cin >> a) 42 { 43 cout << FindChar(a)<<endl; 44 } 45 46 system("pause"); 47 }