摘要:
1.UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)加头文件:参考reload(sys)sys.setdefaultencoding('utf-8') 阅读全文
摘要:
1.最长连续序列。比如 abccccfa,最长连续序列为cccc,长度为4思路:另开一个数组记录到目前位置最长连续序列长度。每个位置的字符(除第一个)和前一个比较,相同+1,不同标为1图示:代码:#include #include int main(){ char s[10] = "abccccfa"; int num[10] = {0}; char tmp; int maxpos, maxval, i; num [0] = 1; maxpos = 0; tmp = s[0]; for(i = 1; i num[maxpos]) ... 阅读全文
摘要:
两种方法:1.声明法 2.模块法1.声明法在文件开始生命全局变量(为了区别,一般大写),在具体函数中,具体使用时,加上“global 变量名”。示例:import osimport sysA = 3B = 5def fuc(): global A global B print "fuc_A:" + str(A) print "fuc_B:" + str(B)if __name__ == "__main__": print "A:" + str(A) print "B:" + str(B) B + 阅读全文
摘要:
xml文件是可扩展标记语言,在保存数据时,经常和.xml文件打交道,它语法简明、格式友好。具体的信息可以到百度百科科普下,下面主要介绍下我用的处理.xml文件的工具包XML2Dict工具包下载:http://files.cnblogs.com/kaituorensheng/%E5%A4%84%E7%90%86xml%E6%96%87%E4%BB%B6.zip下载后把文件解压,和自己的.py文件放在一起,里边有两个文件:xml2dict.py, object_dict.py,在自己.py文件的开头加上from xml2dict import XML2Dictxml = XML2Dict()r = 阅读全文
摘要:
题目:实现一个函数,要求吧字符串中的所有空格替换成“%20”。例如“hello world " ——> ”hello%20world%20"实际背景:在网络编程中,如果URL参数中含有特殊的字符,如空格、'#'等,导致服务器端无法识别时,就把这些特殊的字符转换成可以识别的字符。规则:%加上十六进制的ascii码,例如‘#’的ascii码是0x23(16进制),就替换成%23,看下图地址栏中,输入“hello#hao" 分析:注意:在c语言中存字符串最后一位是认为”\0“的,例如a[] = "12",那么a的长度为3,a[0 阅读全文
摘要:
问题:在一个二维数组中,每行的元素从左到右是递增的,每列元素从上到下是递增的。写一个函数,查找一给定的元素是否在此数组中输入:一个二维数组,和一个待查找的数输出:待查找的数在数组中输出“YES",否则输出”NO"原始思路:最简单思路就是暴力搜索,遍历一遍数组中的元素时间复杂度为O(n2)。但是这样就没有用问题的已知条件(从左到右、从上到下递增),因此不是个好的解法改进1:从第一行开始找,找到待查元素大的,如果还没找到,接着从第二行开始找,直到找到或到最后一个元素为止(如图),但是如果带查找的元素在最后,还得遍历到最后,时间复杂度还是O(n2) 改进2:上来在随机在里面挑一个 阅读全文
摘要:
问:有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢?答:printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。参见问题15.2。对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。下表列出了printf和scanf对 阅读全文
摘要:
解法一早在公元前300年,欧几里德就在《几何原本》中给出了高效的辗转相除法。欧几里得辗转相除法是现在算法的鼻祖。算法思路(伪代码)function gcd (a, b) while b ≠ 0 t = b b = a mod b //取余 a = t return a算法证明1. 两个数a、b,用a除以b,得 a = bq + r(q是商 r是余数)。若 r等于0,则b为最大公约数,否则,接着往下走2. 证明一点:任何a和b的公约数都是r的公约数。 证明:假设d为a、b的公约数,则a = md b = nd.r= a - bq = ... 阅读全文
摘要:
先从一个小程序谈起:#include <iostream>#include <string>using namespace std;int main(){ string s1; cin >> s1; cout << s1 << endl; return 0;}看看测试结果:当输入字串“hello”时,输出是“hello”, 正确。但是下面当输入“hello, nihao"时,输出确实”hello,"把空格后面的东西全部忽略掉了。读入规则是这样的:读取并忽略开头所有的空白字符(如空格、换行符、制表符)读取字符直到空白 阅读全文
摘要:
int a;while (a != 0) cout << a << endl;之前对上面这上面的理解很肤浅,认为输出cout就是个输出标志,并且有时候忘记是"<<" 还是">>"。现在理解稍微深了些:cin 、 cout 只是个对象而已 C++中输入、输出由标准库iostream库提供的。iostream库的基础是两个命名为istream和ostream的类型,分别表示输入流和输出流。cin是istream类型的对象,cout是ostream类型的对象。<< 、 >> 是重定向符 上 阅读全文