摘要: 比较两个字符串的长度?strlen(a)>strlen(b);strlen(a) - strlen(b)>0;哪种是对的呢?我们发现size_t strlen( const char *str);返回的是一个无符号类型。问题来了?如果a字符串的长度小于b,a-b = -1;但是用无符号表示会带来问题会是一个很大的树,结果如果用strlen(a) - strlen(b)>0;来表示的话,正好是相反的。细心一些,一些简单的问题。 阅读全文
posted @ 2012-11-02 00:33 pipicfan 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 最近学习了下python,发现用他来写一些算法,实在所一个爽。如何深入学习一门语言呢?1.hello, world目标:屏幕上打印出hello, world。原因:不解释。进阶:当命令行给与不同参数的时候,打印hello, 名字。给与开关的时候,打印hello, 123。2.正则提取目标:写一个正则表达式(或者类似的东西),从一段网页源码中找到某个标签的内容,去掉前后空格,显示。原因:测试字符串处理能力。进阶:支持正则扩展3.扫描排重目标:将某个目录和子目录下的所有文件扫描,排除重复的文件。原因:测试文件系统操作能力。进阶:多线程处理,注意吞吐颠簸。4.做24点自动计算程序目标:写一个程序,能 阅读全文
posted @ 2012-10-05 18:38 pipicfan 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。每位选手都有一个起步的分数为10分。某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011就是可能的情况。// dafen.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h" 阅读全文
posted @ 2012-10-03 16:52 pipicfan 阅读(209) 评论(0) 推荐(0) 编辑
摘要: set tagsset fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 " 不要使用vi的键盘模式,而是vim自己的 set nocompatible " history文件中需要记录的行数 set history=100 " 在处理未保存或只读文件的时候,弹出确认 set confirm " 与windows共享剪贴板 set clipboard+=unnamed " 侦测文件类型 filetype on " 载入文件类型插件 filetype p 阅读全文
posted @ 2012-09-23 01:21 pipicfan 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 好的我们先来看下排序算法的大结构1.交换排序法冒泡排序 |鸡尾酒排序 | 奇偶排序| 梳排序 |侏儒排序 | 快速排序|臭皮匠算法 |Bogo排序2.选择排序法选择排序 |堆排序 | Smooth排序| 笛卡尔树排序 |锦标赛排序 |循环排序3.插入排序法插入排序 |希尔排序 | 二叉查找树排序| 图书馆排序 |Patience排序4.归并排序法归并排序 |多相归并排序 |Strand排序5.分布排序法美国旗帜排序| 珠排序 |桶排序 | 爆炸排序| 计数排序 |鸽巢排序 | 相邻图排序| 基数排序 |闪电排序6.混合排序法Tim排序 |内省排序 | Spread排序| 反移排序 |J排序其他 阅读全文
posted @ 2012-09-23 00:47 pipicfan 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 数独我就不多说话了没玩过的可以自己玩玩, 或者百科下:http://zh.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC关键是回溯法。。这次是巧妙的利用八皇后的基础搞出来的.下面我就来好好讲将回溯法。回溯法也称试探法,它的基本思想是:从问题的某一种状态(初始状态)出发,搜索从这种状态出发所能达到的所有“状态”,当一条路走到“尽头”的时候(不能再前进),再后退一步或若干步,从另一种可能“状态”出发,继续搜索,直到所有的“路径”(状态)都试探过。这种不断“前进”、不断“回溯”寻找解的方法,就称作“回溯法”。上面的话一大推,你会发现很多废话,其实回溯就是倒着来,返回。 我 阅读全文
posted @ 2012-09-22 23:53 pipicfan 阅读(3037) 评论(1) 推荐(0) 编辑
摘要: 最近跟朋友聊天,遇到这样一个问题:1949年10月1日是星期一,请问到2012年之间有几个星期一?我估计读者的你,可能心中在发笑,这不就是一个日历程序吗?或者你在自己琢磨着简单的解法。判断闰年或者平年,怎么除以7但是这篇文章的目的不是这个,跳出你的思维,我们的目的是只要能快得出答案就行,那你周围的是啥,一台计算机,ok。想想能不能利用它迅速得到结果查windows日历?呵呵你能通过简单的api算出,1949年到2012年之间的天数吗?View Code 1 SYSTEMTIME st1, st2; 2 3 //GetLocalTime(&st1); //... 阅读全文
posted @ 2012-09-06 20:14 pipicfan 阅读(267) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <string>#include <vector>#include <list>using namespace std;void main(){ string word;list<string> lst;list<string>::iterator iter = lst.end();while(cin>>word) iter = lst.insert(iter,word);for (iter;iter!=lst.end();++iter){ cout< 阅读全文
posted @ 2012-09-03 23:16 pipicfan 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 搜罗了一些腾讯的笔试题目题目是这样的:在如下8*6的矩阵中,请计算从A移动到B一共有多少种走法?要求每次只能向上挥着向右移动一格,并且不能经过P;BPAA)492B)494C)496D)498下面是博兄的思路,很给力。倒数1 1 = 1倒数第2列 1+1+1+1+1= 5倒数第三列 5+4+3+2+1= 15这道题目完全可以这么理解 如果翻转一下你会发现p点先忽略发现什么了 ?只要到了最后一排就相当于接触到了b所以 根据题意倒数1 1 = 1倒数2 1+1+1+1+1= 5倒数3 5+4+3+2+1= 15倒数4 15+10+6+3+1= 35倒数5 35+20+10+4+1=70倒数6 70 阅读全文
posted @ 2012-09-01 21:17 pipicfan 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 1. 基本类型: 各种类型是怎么进行默认转换的, ( )强制转换和各种cast都有什么区别, 编译器如何对齐, pack和align是什么东西2. 运算符: 所有运算符的优化级都弄明白了么? 什么能重载,什么不能重载, 什么能运算符不会自动继承交类? template operator+(const A&, const B&); 这样的全通用运算符重载, 会能重载哪些类型?3. class: 虚函数表是怎么回事? this指针存在object的哪个位置? 多继承... 阅读全文
posted @ 2012-08-26 21:48 pipicfan 阅读(484) 评论(0) 推荐(0) 编辑