[Microsoft面试]题目:在一个字符串中找到第一个只出现一次的字符。
如输入abaccdeff,则输出b。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。分析:这道题是2006年google 的一道笔试题。 Again, thisdepends on what is “char”. Let’s assume it as ASCII.char firstSingle(char * str) {int a;memset(a, 0, 255*sizeof(int));char *p=str;while (*p!=’\0’) { a[*p] ++; p++;}p = str;while (*p!=’\0’) { if (a[*p] == 1) return *p;}return ‘\0’; // this must the one thatoccurs exact 1 time.}
页:
[1]