posts - 183,  comments - 10,  trackbacks - 0
(字符串):
在一个字符串中找到第一个只出现一次的字符。如输入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, 0sizeof (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)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理