摘要:
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.... 阅读全文
摘要:
题目:列出九宫格键盘输入的所有字母组合思路:将字母的组合看成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 阅读全文
摘要:
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 ? 阅读全文