08 2013 档案

摘要:题目:从源字符串中删除给定的字符串“ab”,如源字符串为“fbaabbcdab”,删除“ab”后为“fbcd”。要求:不能使用string,不用递归,时间复杂度O(n)。分析:此题借鉴微软的一道面试题,采用快慢指针实现一次扫描完成删除操作。与微软那道题目不同的是,此题的慢指针存在回退的情况。void deleteab(char* str){ if (str == NULL) return; char* s = str; char* f = str+1; //标兵 char pacer = '0'; while( *s!='\0' ) { if( *s!=' 阅读全文
posted @ 2013-08-25 16:23 simon1024 阅读(474) 评论(0) 推荐(0)
摘要:待写 阅读全文
posted @ 2013-08-14 11:14 simon1024 阅读(342) 评论(0) 推荐(0)
摘要:题目:列出九宫格键盘输入的所有字母组合思路:将字母的组合看成k进制的数,列出字母组合的过程即为对数进行加法运算。#include #include #include char* letter[] = {"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};void listAll(char* input){ int len = strlen(input); int total = 1; i 阅读全文
posted @ 2013-08-09 08:19 simon1024 阅读(414) 评论(0) 推荐(0)
摘要:bool BinTree::is_avl(BintreeNode *r, int& height){ if (r == NULL) { height = 0; return true; } int hl,hr; bool is_avl_left = is_avl(r->get_left(), hl); if ( !is_avl_left ) return false; bool is_avl_right = is_avl(r->get_right(), hr); if ( !is_avl_right ) return false; int max = hl>hr ? 阅读全文
posted @ 2013-08-09 08:17 simon1024 阅读(186) 评论(0) 推荐(0)