Newcoder 练习题
Programming language: Python 2.7.x
剑指offer66题 (更新中…) 孩子们的游戏
思路:每次拿到小礼品的孩子的位置为 (上一个小孩子的位置+m-1)%(小孩总数),依次循环,直到列表中只有一个元素,输出即可
求1+2…+n
思路:采用递归的形式进行求解
第一个只出现一次的字符
思路:遍历字符串,若在该字符的前后都没有出现该字符,将该字符输出,遍历结束后若返回-1
数组中只出现一次的字符
思路:遍历数组,每次遍历时都新建一个没有当前字符的暂时数组,若当前字符在暂时数组中找不到与之相同的字符,将其添加至结果列表中,直到结果列表中的字符为2
斐波那契数列
思路:做法十分简单,a[n] = a[n-1] + a[n-2]
数值的n次方
思路:调用python内置的 ** 进行幂运算
跳台阶
思路:与斐波那契数列做法相似
变态跳台阶
思路:a[n] = a[0] + … + a[n-1]
替换空格
思路:使用python内置的对于str的replace()方法
整数中1出现的次数
思路:将整数变为字符串,遍历字符串
构建乘积数组
思路:对于B中的每个元素,构建一个去掉A中对应该下标元素的数组temp,将temp中的所有元素进行乘积后赋值给B中对应位置的元素即可
翻转单词序列
思路:调用python内置的reverse()方法进行翻转
数据流中的中位数
思路:遍历原始列表,依次向temp列表中添加元素,再调用sorted()方法对temp列表进行排序再进行中位数的计算(代码可以得到正确结果,但是再newcoder这里通过不了)
其他练习题 汽水瓶
思路:每次将手中的水瓶对3进行取余,将取余后的空水瓶加上换来的水瓶再进行兑换,直到手中的水瓶数量小于2,等于2时+1
思路:空水平数量/2,向下取整
大整数相乘
思路:python支持大整数
最大乘积
思路:排序后将首位四个数进行三个为组进行乘积操作,输出数值最大的数(该方法可以输出正确结果,但是nowcoder这里通不过)
去重排序
思路:新建一个列表,每次从原始列表中向新建列表中添加元素时先检测是否有相同的元素,有则不添加,没有则反之,添加完后调用sort()进行排序