(字符串):
在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
先遍历一遍,统计各个字符的出现次数。在遍历一遍,若当前字符的出现次数为 1,则返回。若不存在这样的字符则返回 0。
1 #include <iostream>
2 #include <string>
3 using namespace std;
4
5 char solve(const string& s)
6 {
7 static int times[26] = {0};
8 memset(times, 0, sizeof (times));
9 for (size_t i = 0; i < s.size(); ++i)
10 {
11 ++times[s[i] - 'a'];
12 }
13 for (size_t i = 0; i < s.size(); ++i)
14 {
15 if (times[s[i] - 'a'] == 1)
16 {
17 return s[i];
18 }
19 }
20 return 0;
21 }
22
23 int main()
24 {
25 string s = "abaccdeff";
26 cout << solve(s) << endl;
27 return 0;
28 }
posted on 2011-05-15 23:44
unixfy 阅读(684)
评论(0) 编辑 收藏 引用