http://zhedahht.blog.163.com/blog/static/25411174200722191722430/
建立一个hashtable,存放每个字符出现的次数。
需要2次遍历字符串才能找到第一个只出现一次的字符
#include <cstdio> #include <cstdlib> #include <cstring> char find_first_char(char *b) { if (!b) return 0; int hashtable[300]; memset(hashtable, 0, sizeof(hashtable)); char *s = b; while (*s != '\0') { ++hashtable[*s]; ++s; } s = b; while (*s != '\0') { if (hashtable[*s] == 1) break; ++s; } return *s; } int main() { char b[100]; gets(b); char c = find_first_char(b); if (c) printf("%c", c); return 0; }