一道Google面试题的新解法探索
2012-11-27 22:53
134 查看
原题就是找出字符串中第一个不重复的字符。
如,输入abaccdeff
返回的应该是b
这段代码先放着,是错误的,但是思路可能会更好一点,相比遍历两次的那一个,但是空间复杂度差一些。
如,输入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; }
这段代码先放着,是错误的,但是思路可能会更好一点,相比遍历两次的那一个,但是空间复杂度差一些。
相关文章推荐
- 【算法】一道有趣的GOOGLE面试题 --【解法2】
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 --【解法2】
- Google 的一道面试题的解法
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- 【转】一道Google面试题的解法
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】 .
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 【解法2】
- 一道有趣的GOOGLE面试题
- google的一道JAVA面试题
- 摔棋子(摔杯子)问题——解答Google的一道面试题
- 解答Google的一道面试题 .
- 多个对象访问共享对象和数据的方式——一道JAVA就业面试题的不同解法
- 一道google电话面试题
- google的一道面试题
- 一道据说是Google的面试题:25匹马的角逐
- 一道面试题的解法
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 一道sql面试题解法