关闭
当前搜索:

[置顶] PAT题型分类 & 记录汇总

这篇博客记录了我在跟着《算法笔记》以及习题册《算法笔记 上机实践指南》刷了PAT的题目之后的一些解题方法的总结与心得。 第三章 入门模拟 1. 简单模拟 一般解题思路 这一小节的题目只需根据题目描述(一般规则很简单),用代码实现即可;有些题目在用到一下知识点之后变得更简便。 学到的知识点 /和%运算符的强大作用 数组下标映射打表 循环问题的解题思路(left to r......
阅读(4168) 评论(2)

Python 生成器(generator)的坑(把每一行看做一个list,试写一个generator,不断输出下一行的list)

生成器(generator)是一种“惰性”的算法生成器,比起列表生成式的一次性生成,他仅仅是将生成规则保存在生成器函数中(generator function),遇到next()计算并返回下一次的生成值,起到了节省内存空间的作用。 最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用ne...
阅读(188) 评论(0)

Python 切片:利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法

在很多编程语言中,针对字符串提供了很多各种截取函数(例如,substring),其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成各种截取操作,非常方便。 要去除首尾的空格,只需要从头到尾、从尾到头各扫描一次,记录两端需要截取的位置,去除两端空格即可。 需要注意的是全是空格的情况。 def trim(s): length = len(s)...
阅读(412) 评论(0)

Python turtle库绘制七段数码管

数码管简介 数码管是一种半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point)。 它价格便宜、使用简单,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数的器件。在电器特别是家电领域应用极为广泛,如显示屏、空调、热水器、冰箱等等。 绘...
阅读(61) 评论(0)

利用蒙特卡洛(Monte Carlo)方法计算π值

圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能采用近似算法。 国际公认的π值计算采用蒙特卡洛方法。 蒙特卡洛方法 蒙特卡洛(Monte Carlo)方法,又称随机抽样或统计试验方法。当所求解的问题是某种事件出现的概率,或某随机变量的期望值时,可以通过某种“试验”方法求解。 简单说,蒙特卡洛是利用随机试验求解问题的方法。 π值的计算 构造一个单位正方形和一个单位...
阅读(134) 评论(0)

PAT-A 1060. Are They Equal (25)

一道字符串处理的题。 这题借助STL中的string处理起来要便利一些。 string有以下几点值得关注的地方: 获取字符串长度的size()/length()方法的时间复杂度为O(1) string::npos 是一个常数,本身的值为-1。由于是unsigned_int类型,因此实际上也可以认为是unsigned_int类型的最大值。它作为find()函数失配时的返回值。 题目链...
阅读(42) 评论(0)

PAT-A 1063. Set Similarity (25)

一道STL(set)的练习题。 set翻译为集合,是一个内部自动有序且不含重复元素的容器,这是set非常重要的特性,要在实际问题中充分利用之。 除此之外,值得注意的是,set的基本操作:insert()、find()等一些操作的时间复杂度为O(logN)。 题目链接在此。 题意 给出N个集合,然后有K个查询,给出每个查询的Set Similarity,即(Nc/Nt)*100.0...
阅读(40) 评论(0)

PAT-A 1047. Student List for Course (25)

题目链接在此。 同样是一道STL(vector)的练习题。 先看看这个题:PAT-A 1039. Course List for Student (25) 看题目就应该知道这两题是镜像题目。 由上一题的结论可知,这一题应该以课程为主体。 在上一题的基础上,这题就变得十分简单了,直接看代码把。 #include #include #include #include using na...
阅读(51) 评论(0)

字符串hash算法

本篇博客主要记录了 字符串hash 的相关算法,包括: 1. 字符串hash初步 2. 字符串hash进阶(还不一定什么时候写,初步的内容在大部分情况下是够用的) 概述 散列(hash)是一种常用的算法思想,是一种典型的以空间换时间的做法。 对于整数型的散列算法在一般的数据结构课程或书籍中都会教授,这两个名词不知道是否会激起您的一些记忆:散列函数、冲突。 这篇博客不讨论散列函数的构...
阅读(62) 评论(0)

PAT-A 1039. Course List for Student (25)

一道STL(vector)的练习题。 题目链接在此。 题意 有N名学生,K门课程,给出每门课程的选课学生。然后有N个查询,每个查询是某位学生的名字,要求输出每个查询的学生一共选了多少门课,以及每门课的编号。(当然输入、输出都是有限制的) 思路及实现 我想到的是两种思路: 第一种: 以课程为主体,将选择这门课的学生的名字加入到该门课程的学生列表中。 第二种: 以学生为主体,...
阅读(48) 评论(0)

大整数运算

本篇博客记录大整数运算相关问题。 包括: 1. 大整数的存储 2. 大整数的四则运算 1 大整数的存储 大整数又叫高精度数,一般指其范围已经超出了基本数据类型能够表示的范围的数。 很容易想到,对于高进度数我们需要用数组来存储。有以下几点注意事项: 1. 顺位存储 如123,我们这么保存:num[0] = 3, num[1] = 2, num[2] = 1,即整数的高位保存在数组......
阅读(46) 评论(0)

PAT-A 1024. Palindromic Number (25)

题目连接在此。 一道大整数加法+简单模拟题。 大整数运算相关内容,请看这里。 题意 定义一种操作:让一个整数加上这个整数转置后的数。(例如123,转置后为321,两数相加123+321=444) 现在给出一个整数以及限制的操作次数,问在限定次数内是否能够得到回文数(上例中的444就是回文数)。如果在限定次数内能得到,输出这个回文数,并输出操作次数;如果在限定的操作次数内不能得到回文数,则...
阅读(120) 评论(0)

PAT-A 1023. Have Fun with Numbers (20)

一道高精度加法(/乘法)+HashTable的题。 题目连接在此。 大整数运算相关内容,请看这里。 题意 给出一个长度不超过20的整数,问这个数翻倍后的数位是否为原数数位的一个排列。 如样例: 原数:1234567899(1~8出现一次,9出现2次) 翻倍之后: 2469135798(1~8出现一次,9出现2次) 故倍数数位是原数的数位的一个全排列。 解题思路 先进行高进...
阅读(58) 评论(0)

PAT-B 1017. A除以B (20)

题目连接在此。 简单的高精度除法。 大整数运算相关内容,请看这里。 下面是AC代码: #include #include using namespace std; struct bign{ //big number 大整数 int num[1005]; int len; bign(){ memset(num, 0, sizeof(num));...
阅读(61) 评论(0)

Android 小问题汇总

本篇博客用于记录在Android开发中遇到的一些细小问题。由于每个问题都是细小而零碎的,所以记录在一篇博客中方便日后查找。...
阅读(282) 评论(0)

Android TextView 不刷新解决办法

Andorid TextView 不刷新解决办法...
阅读(1307) 评论(0)
142条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:41644次
    • 积分:1768
    • 等级:
    • 排名:千里之外
    • 原创:138篇
    • 转载:4篇
    • 译文:0篇
    • 评论:13条
    最新评论