摘要: 1. 有一个文件,如何在不知道有多少行的情况下读取该文件,从中随机选择并输出一行当我们读取第i (i > 0)行时,以1 / i的概率选择第i行,并替换掉原来选的行。即总选择第一行,并以概率1 / 2选择第2行,以概率1 / 3选择第3行,依次类推。到文件结束时,每个行被选中的概率都相等。 1 #include 2 #include 3 #include 4 #include 5 #define MAX_LINE_LEN 4096 6 int main() 7 { 8 srand(time(NULL)); 9 const char *filename = "input.... 阅读全文
posted @ 2013-08-09 08:24 simon1024 阅读(227) 评论(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 阅读(386) 评论(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 阅读(179) 评论(0) 推荐(0) 编辑