自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

足迹

坚持~

  • 博客(31)
  • 收藏
  • 关注

原创 还原二叉树

原题:http://www.patest.cn/contests/mooc-ds2015spring/03-%E6%A0%912(Tree Traversals Again)思路:push结点的顺序就是前序遍历的顺序,pop的顺序就是中序遍历的顺序,跟据前序与中序可还原二叉树代码:#include #include #include using namespace std;t

2015-04-24 21:07:08 436

原创 树的建立与层序遍历

原题:http://www.patest.cn/contests/mooc-ds2015spring/03-%E6%A0%911(List Leaves)思路:用结构数组保存结点,下标对应结点数据值,结构中的两个变量left与right保存左右孩子在数组中的下标。代码:#define _CRT_SECURE_NO_WARNINGS#include #include #include

2015-04-23 16:47:32 311

原创 删除链表中重复元素

思路:用一个指针p遍历链表,然后对每次p之后的元素查看是否有相同元素示例:list RemoveDupNode(list l){ position p, q, t; p = l->next; while (p){ q = p; while (q->next){ if (q->next->data == p->data){ t = q->next; q->

2015-04-22 01:45:46 470

转载 求有环单链表中的环长、环起点、链表长

原文:http://www.cnblogs.com/xudong-bupt/p/3667729.html1.判断单链表是否有环  使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。  就是所谓的追击相遇问题:    2.求

2015-04-21 23:06:52 273

原创 反转链表的几种方法

方法一:新建一个新的链表,然后把原来的链表从第一个结点依次用头插法加入到新的链表中方法二:设置指针previous,current,next,把每个结点一次反转list Reverse(list l){ position previous, current, next; current = l->next; previous = NULL; while (current){ ne

2015-04-21 22:30:10 456

原创 快速找到单链表的中间节点

思路:可以先遍历链表求出链表的总长度,然后找到中间节点的位置。比较快的方法是设置两个指针都指向头节点,第一个指针每次移动一步,第二个指针每次移动两步,那么第二个指针到末尾的时候第一个指针就在中间位置了。示例:int GetMidNode(list l){ position p, mid; p = mid = l; while (p->next != NULL){ if (p->ne

2015-04-21 21:15:57 663

原创 单链表的倒数第K个数

思路:建立两个指针 ,先让第一个指针走K步,然后第二个指针也开始走,两个指针速度一致,那么第一个指针到链表末尾的时候,第二个指针就在地K个位置上。示例:int ReverseKth(list l, int k){ position p1, p2; //p1先走k步 int i = 0; p1 = l->next; while (p1){ ++i; if (i == k)

2015-04-21 21:01:11 317

原创 PAT(B)1023. 组个最小数 (20)

#include using namespace std;int main(){ int a[10] = { 0 }; for (int i = 0; i 10; ++i){ cin >> a[i]; } int min = 0; for (int i = 1; i 10; ++i){ if (a[i] != 0){ cout break

2015-03-24 08:16:09 331

原创 PAT(B)1022. D进制的A+B (20)

#include using namespace std;int main(){ int a, b, d; cin >> a >> b >> d; int s = a + b; int t[32] = { 0 }; int k = 0, n = 0; while (s >= d){ t[k++] = s%d; s /= d; } t[k]

2015-03-24 08:06:57 473

原创 PAT(B)1021. 个位数统计 (15)

#include #include using namespace std;int main(){ string s; cin >> s; int a[10] = { 0 }; for (int i = 0; i < s.length(); ++i){ ++a[s[i] - '0']; } for (int i = 0; i 10; ++i){

2015-03-24 07:53:13 340

原创 PAT(B)1016. 部分A+B (15)

#include using namespace std;int main(){ int a, da, b, db; int pa = 0, pb = 0; cin >> a >> da >> b >> db; while (a > 0){ if (a % 10 == da) pa = pa*10+ da; a /= 10; } while (b

2015-03-09 22:38:47 333

原创 PAT(B)1015. 德才论 (25)

#include #include #include #include using namespace std;struct stu{ int num; int scored; int scorec; bool operatorconst stu &tmp) const{ //重载运算符 if (scorec+scored != tmp.

2015-03-08 23:38:16 456

原创 PAT(B)1014. 福尔摩斯的约会 (20)

#include #include using namespace std;int main(){ string s1, s2, s3, s4; cin >> s1 >> s2 >> s3 >> s4; int ct = 0; for (auto i = s1.begin(), j = s2.begin(); i != s1.end() && j != s2.end(

2015-03-08 00:48:07 555

原创 PAT(B)1013. 数素数 (20)

#include using namespace std;int isPrime(int n){ for (int i = 2; i*i <= n; ++i) if (n%i == 0) return 0; return 1;}int main(){ int m, n; cin >> m >> n; int ct = 0; int

2015-03-07 19:22:59 534

原创 PAT(B)1012. 数字分类 (20)

#include #include using namespace std;int main(){ int n, num; int a[6] = { 0 }; int b = 1; int ct1 = 0, ct2 = 0; cin >> n; while (n--){ cin >> num; if (num % 10 == 0) a[1]

2015-03-05 21:58:36 342

原创 PAT(B)1010. 一元多项式求导 (25)

#include using namespace std;int main(){ int a, b; bool first = false; while (cin >> a >> b){ if (b > 0){ if (first) cout " "; else first = true; cout " " 1; }

2015-03-05 20:43:45 477

原创 pat(B)1011. A+B和C (15)

#include #include using namespace std;int main(){ int t; long a, b, c; int ct = 0; cin >> t; while (t--){ cin >> a >> b >> c; if (a + b > c) printf("Case #%d: true\n", ++ct);

2015-03-02 22:52:44 383

原创 PAT(B)1007. 素数对猜想 (20)

思路:用筛选法求出n内所有素数#include #include using namespace std;const int range = 100000;bool IsPrime[range + 1];void set(bool IsPrime[],int range){ int i, j; for (i = 0; i <= range; ++i)

2015-03-02 22:17:43 365

转载 素数筛选法

基本思想:用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 301不是素数,去掉。剩下的数中2最小,是素数,去

2015-03-02 21:57:10 362

原创 PAT(B)1005. 继续(3n+1)猜想 (25)

思路:用一个数组记录下验证每个数字时产生的过程值 最后输出时与这个数组进行比较#include #include using namespace std;int Compare(int a, int b){ return a > b;}int main(){ int k; int a[100]; //保存待验证的正整数 int b[100] = { 0

2015-03-02 20:56:39 365

原创 PAT(B)1009. 说反话 (20)

#include #include #include using namespace std;int main(){ vectorstring> svec; string s; bool first = false; while (cin >> s){ svec.push_back(s); } for (auto c = svec.rbegin();

2015-03-02 19:15:20 300

原创 PAT(B)1006. 换个格式输出整数 (15)

#include using namespace std;int main(){ int n; cin >> n; if (n >= 100){ for (int i = 0; i 100; ++i) cout "B"; n %= 100; } if (n >= 10){ for (int i = 0; i 10; ++i)

2015-03-02 19:01:10 344

转载 PAT(B)1008. 数组元素循环右移问题 (20)

思路:参考原文数组循环移位#include using namespace std;//对数组a,逆序排列a[i]到a[j]的值void Reverse(int a[], int i, int j){ for (; i < j; ++i, --j){ int temp = a[i]; a[i] = a[j]; a[j] = temp;

2015-03-02 18:44:22 389

原创 PAT(B)1004. 成绩排名 (20)

#include int main(){ struct{ char name[11]; char id[11]; int score; } a[100]; int n, p, q; int max = 0,min = 100; scanf("%d", &n); for (int i = 0; i < n; ++i){ scan

2015-02-10 22:40:51 518

原创 PAT(B)1002. 写出这个数 (20)

#include #include int main(){ char pinyin[][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" }; char a[100]; int sum = 0; scanf("%s", &a); for (size_t i = 0; i <

2015-02-09 19:37:16 951

原创 快速求幂

递归求解:int f_pow(int a, int n){ if (n == 0) return 1; if (n == 1) return a; int tmp = f_pow(a, n >> 1); int ret = tmp * tmp; if (n & 1) ret *= a; //位运算,判断n奇偶,奇数要再乘一次a return ret;}循

2015-01-26 13:05:07 340

原创 辗转相除法(欧几里得)求最大公约数和最小公倍数

循环求解:int gcd (int a, int b){ int temp; if (ab时,交换a和b temp = a; a = b; b = temp; } while (b>0) { temp = a % b; a = b; b = temp; } return a;}递归qiu'jie

2014-11-09 18:06:41 587

原创 开始

时间过的很快,

2014-11-09 17:35:35 273

转载 python爬虫-12-24

编码的问题算是解决了一部分了。。我在解码时使用page.decode('gb2312','ignore'),将无法解码的东西变成?,虽然爬下来的网页,关于中文部分全是乱码,不过起码可以正常提取url了。# -*- coding: gb2312 -*-import urllib.requestdef getContent(url): f=urllib.request...

2012-12-24 20:00:00 82

转载 开源python网络爬虫框架Scrapy(转)

介绍:所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所有HTML页面就是一个有待考究的问题了。一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加...

2012-12-23 11:52:00 124

转载 python爬虫-12-23

最近打算写一个爬虫,两个目的,学会python,写出知道创宇的题。我下了一个python3.3。里面有一个编辑器IDLE。首先,作为一个爬虫,他要具有爬取网页源码的功能。python自带的urllib库中的request.py文件中有这个函数,URLOPEN(url)。(不同于以往的版本,urllib的库更加像一个。。网络client和server的函数库角色)其次...

2012-12-23 00:24:00 123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除