Python
xh614
好好学习,天天向上!
展开
-
二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:把一个整数减去1,再和原证书做与运算,会把该整数最右边一个1变成0,则整数的二进制有几个1就会进行几次操作,记录下操作数目即可。C++: int NumberOf1(int n) { int count=0; while(n) { c原创 2017-05-27 16:08:02 · 175 阅读 · 0 评论 -
爬虫-爬取代理ip网页里的ip
思想:先打开url,获取其html然后下载出网页中符合正则表达式的ipimport urllib.requestimport redef open_url(url): req=urllib.request.Request(url) req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) Ap原创 2017-05-31 09:18:20 · 1167 阅读 · 0 评论 -
剑指offer--python --c++--从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。python解法:先将链表中的值插入到序列l中,之后再将序列逆置,则输出序列即可def printListFromTailToHead(self, listNode): l=[] while listNode: l.append(listNode.val) l原创 2017-05-24 11:39:18 · 1385 阅读 · 0 评论 -
链表中倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点。python:将链表存入数列l中,然后输出倒数第k个值,l[-k]即可def FindKthToTail(self, head, k): l=[] while head !=None: l.append(head) head=head.next原创 2017-05-26 10:37:46 · 189 阅读 · 0 评论 -
反转链表
输入一个链表,反转链表后,输出链表的所有元素。思路:从头结点开始,先独立头结点,然后将下一个结点指向头结点,然后再往下重复这个过程C++: ListNode* ReverseList(ListNode* pHead) { ListNode* pre = NULL; ListNode* now = pHead; while (now != NULL) {原创 2017-05-26 10:12:21 · 188 阅读 · 0 评论 -
包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。思路:C++:stack stack1; stack stack2; void push(int value) { stack1.push(value); if(stack2.empty()) stack2.push(value);原创 2017-05-26 17:41:55 · 197 阅读 · 0 评论 -
重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:根据先序遍历中第一个数字是树的根节点,中序遍历根节点在序列的中间,而且根节点前的数为左子树结点的值,后面的数为右子树结点的值,不断递归即可完成重建二叉树原创 2017-05-27 11:11:21 · 226 阅读 · 0 评论 -
跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:当台阶数为1时,只有一种跳法,台阶数为2时,有2种跳法,当台阶数n>2时,第一次跳时就有两种不同的选择,一是第一次跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳发数目,即为f(n-1),当第一次跳2级时,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2),因此n级台阶的不同跳原创 2017-05-27 15:35:00 · 235 阅读 · 0 评论 -
矩形覆盖
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:用第一个1*2小矩形去覆盖大矩形的最左边时有两个选择,竖着放或者横着放,当竖着放的时候,右边还剩下2*(n-1)的区域,这种情形下的覆盖方法为f(n-1),当第一次为横着放时,左下角必须横放,而右边剩下2*(n-2)的区域,此时覆盖方法为f(n-2),所以f(n原创 2017-05-27 15:58:35 · 294 阅读 · 0 评论 -
数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路:最优的做法,利用移位,当用户为偶次幂时,只要计算出exponent/2的结果,然后将两数相乘就可以了,当用户为奇数次幂时,将相乘的结果再乘以一次底数base就可以了。C++:double Power(double base, int exponent) {原创 2017-05-27 16:50:04 · 308 阅读 · 0 评论 -
爬虫-爬取网站上的图片
思路:先访问网页,获得html,然后将网页中符合图片的地址的正则表达式的图片的下载下来代码:import urllib.requestimport redef open_url(url): req=urllib.request.Request(url) req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1原创 2017-05-31 09:19:43 · 689 阅读 · 0 评论