剑指Offer 找出字符串中第一个只出现一次的字符

题目描述

找出字符串中第一个只出现一次的字符

 

如果无此字符 请输出'.'

 

 

 


输入描述:

输入一串字符,由小写字母组成



输出描述:

输出一个字符


输入例子:
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 }

 

posted @ 2016-08-24 14:45  SeeKHit  阅读(218)  评论(0编辑  收藏  举报