列表推导式生成一维数组 列表推导式常见的 3 种形式: [x for x in data if condition] 这里的 if 主要是起到一个条件判断的作用,data 里面的数据,只有满足 if 的条件才会被留下。 [exp1 if condition else exp2 for x in data] 此处if…else主要起赋值作用,当data中的...
题目描述: 下过象棋的人都知道,马只能走’日’字形(包括旋转90°的日),现在想象一下,给你一个n行m列网格棋盘, 棋盘的左下角有一匹马,请你计算至少需要几步可以将它移动到棋盘的右上角,若无法走到,则输出-1. 如n=1,m=2,则至少需要1步;若n=1,m=3,则输出-1。 分析 图形的搜索算法常见的有两种:深度优先(DFS)和 广度优先(BFS) 以下图为例说明两种算法的不同之处: ...
题目描述: 一年有多少天,这是个大问题,很值得思考。现在给你一个年份year(year为四位数字的字符串,如”2008”,”0012”), 你输出这一年的天数。如year=”2013”, 则输出365。 分析 一年有365 天还是 366 天,就是判断这一年是否为闰年。 如果可以被400整除 那就是闰年 如果能被4整除且不能被100整除,那就是闰年 year = int(...
题目描述: 给你两个时间st和et(00:00:00<=st <= et<=23:59:59), 请你给出这两个时间间隔的秒数。 如:st=”00:00:00”, et=”00:00:10”, 则输出10. 分析 我在这里时间把时间 转换成秒,然后取差值。 h_s, m_s, s_s = st.split(":") h_e, m_e, s_e = et.split(':...
题目描述: 给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。如果存在,则输出YES,否则输出NO。 回文串的定义:记串str逆序之后的字符串是str1,若str=str1,则称str是回文串,如”abcba”. 分析 我们对于回文的判断,已经比较熟悉了。 我们要找到是否存在 长度为 n 的回文子串,那么首先一个比较直观的想法就是: 把每一个长度为 n 的子串都判断一下是...
题目描述: 给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。 例如a=”cagy”, b=3, 则输出 :fdjb 分析 这种题目有种感觉,字符串成环的味道。 一般而言可以使用取余的方式。 但是自从我不知道从哪里学到 把两个相同串首位相连,然后直接加上 偏移量...
题目描述: 抓不住爱情的我 总是眼睁睁看它溜走 …现在来练习一下发现爱的能力,给你一个字符串a,如果其中包含”LOVE”(love不区分大小写)则输出LOVE,否则输出SINGLE。 例如:a = “OurWorldIsFullOfLOVE” 则输出:LOVE 分析 这个就有点点生气了,这不是疯狂暗示我这个单身狗吗。生气.ing,,叉腰.jpg 这个就是 查找子串了。 我先把 母串,...
题目描述: 我们经常遇到的问题是给你两个数,要你求最大公约数和最小公倍数。今天我们反其道而行之,给你两个数a和b,计算出它们分别是哪两个数的最大公约数和最小公倍数。输出这两个数,小的在前,大的在后,以空格隔开。若有多组解,输出它们之和最小的那组。注:所给数据都有解,不用考虑无解的情况. 分析 江湖规矩: “如果暴力不能解决问题,再想想其他的解决办法。” 我先根据这两个数的大小,把这两个...
题目描述: 给你两个正整数a,b, 输出它们公约数的个数。 例如:a = 24, b = 36 则输出:6 分析 公约数,我就不是很喜欢 约数 这个概念。我喜欢用因数一点。 因数就是 如果 a % b == 0 那么 b 就是 a 的一个因数。 这里选较小的一个数,可以少循环几次。 c = min(a, b) res = 0 for i in range(1, c+1): ...
题目描述: 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。 在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万 以下的例子示范了阿拉伯数字到人民币大写的转换规则: 1 壹圆 11 壹拾壹圆 111 壹佰壹拾壹圆 101 壹佰零壹圆 -100...