题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
分析:这道题是2006年google的一道笔试题。
- #include <iostream>
- struct Entry
- {
- int pos;
- int cnt;
- };
- int main()
- {
- char buf[1024] = "abaccdeff";
- Entry Record[100] = {0};
- char* str = buf;
- for (int i = 0; *str; str++,i++)
- {
- if (Record[*str-'a'].cnt == 0)
- {
- Record[*str-'a'].pos = i;
- }
- Record[*str-'a'].cnt++;
- }
- int minpos = 10000;
- for (int i = 0; i < 100; ++i)
- {
- if (Record[i].cnt == 1 && Record[i].pos < minpos)
- {
- minpos = Record[i].pos;
- }
- }
- printf("%c",buf[minpos]);
- }
阅读(2009) | 评论(0) | 转发(2) |