您的位置:首页 > 职场人生

一道Google面试题的新解法探索

2012-11-27 22:53 134 查看
原题就是找出字符串中第一个不重复的字符。

如,输入abaccdeff

返回的应该是b

#include <iostream>
#include <string>

using namespace std;
char* first_once_letter(char* input)
{
char* p1 = input;
char* p2 = input;
const int hash_size = 255;
int hash[hash_size] ={0};
while(*p1 != '\0')
{
hash[*p1]++;              //a b a c c d e f f
//        p1
if(hash[*p1] != 1)        //  p2
p2++;
p1++;
}
return p2;
}
int main(void)
{
char* s = "abaccdeff";
char* k = first_once_letter(s);
cout << *k << endl;
return 0;
}

这段代码先放着,是错误的,但是思路可能会更好一点,相比遍历两次的那一个,但是空间复杂度差一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: