2013年11月29日
摘要: 剑指Offer - 九度1513 - 二进制中1的个数2013-11-29 23:35题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。n保证是int范围内的一个整数。输出:对应每个测试案例,输出一个整数,代表输入的那个数中1的个数。样例输入:345-1样例输出:1232题意分析: 这题是《编程之美》的原题了,只需要了解两个很巧妙的位操作:x & (-x),x & (x - 1)。 x & (-x)是树状数组的lowbit操 阅读全文
posted @ 2013-11-29 23:44 zhuli19901106 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1512 - 用两个栈实现队列2013-11-29 21:23题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1=0)2. POP 从队列中pop一个数。输出:对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。样例输入:3PUSH 10POPPOP样例输出:10-1题意分析: 用两个栈实现一个队列。栈(stack)的特点是先进后出,是反的;而队列(queue)的特点是先进先出,是正的。因此用两个栈,反. 阅读全文
posted @ 2013-11-29 21:34 zhuli19901106 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08题目描述:输入一个链表,从尾到头打印链表每个节点的值。输入:每个输入文件仅包含一组测试样例。每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。输出:对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。样例输入:12345-1样例输出:54321题意分析: 给定一条单链表,从未到头打印出来。第一个念头是可以用头递归的写法进行倒序输出,但不论头递归还是尾递归都不是个会写代码的人该写出来的,. 阅读全文
posted @ 2013-11-29 21:17 zhuli19901106 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1510 - 替换空格2013-11-29 20:53题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。输入:每个输入文件仅包含一组测试样例。对于每组测试案例,输入一行代表要处理的字符串。输出:对应每个测试案例,出经过处理后的字符串。样例输入:We Are Happy样例输出:We%20Are%20Happy题意分析: 题目给出的需求很简单,将空格‘ ’编码成%20,这就是传统的urlencode功能。对于这种单字符的匹配,很容易硬编码实现。但如果匹配的模. 阅读全文
posted @ 2013-11-29 21:00 zhuli19901106 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1507 - 不用加减乘除做加法2013-11-29 20:00题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。输入:输入可能包含多个测试样例。对于每个测试案例,输入为两个整数m和n(1 4 using namespace std; 5 6 void cal_onebit(const int m, const int n, int i, int &carry, int &res) 7 { 8 res = (res | 9 (10 (m & (1 << i)) ^ 11 ... 阅读全文
posted @ 2013-11-29 20:22 zhuli19901106 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer - 九度1506 - 求1+2+3+...+n2013-11-29 19:22题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。输入:输入可能包含多个测试样例。对于每个测试案例,输入为一个整数n(1 4 using namespace std; 5 6 void add2(long long int &x, long long int &y, int i, int j, long long int &res) 7 { 8 res += (((!!(x & 阅读全文
posted @ 2013-11-29 19:57 zhuli19901106 阅读(501) 评论(0) 推荐(0) 编辑