陈荣莲 发表于 2013-8-16 10:58:52

[Microsoft面试]题目:在一个字符串中找到第一个只出现一次的字符。

如输入abaccdeff,则输出b。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。分析:这道题是2006年google 的一道笔试题。

秦静静 发表于 2013-8-16 11:11:04

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]
查看完整版本: [Microsoft面试]题目:在一个字符串中找到第一个只出现一次的字符。