这里假设读者已经掌握Python基本语法。
反向输出一个三位数
描述
将一个三位数反向输出。
输入
一个三位数 $n$。
|
|
输出
反向输出 $n$。
|
|
Solution
在Python中,通常可以使用-1进行字符串翻转。
|
|
字符串中的整数求和
描述
输入两个长度为3的字符串,每个串前两个字符是数字,后一个字符是字母,求这两个串中的整数的和。
输入
一行,两个字符串。
|
|
输出
两个字符串中整数的和。
|
|
Solution
首先,需要用split从输入中提取以空格分段的列表,列表元素为字符串格式。
然后,取出这两个字符串中的整数部分并相加即可。
|
|
点与正方形的关系
描述
有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。
写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。
输入
输入一行,包括两个整数 $x,y$ ,以一个空格分开,表示坐标 $(x,y)$。
|
|
输出
输出一行,如果点在正方形内,则输出yes,否则输出no。
|
|
Solution
上面已经说过输入的规则了,因此接下来只需要提取相应坐标并用条件判断语句判断即可。
|
|
简单计算器
描述
一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况(除法结果就是商,忽略余数)。
输入
输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。
|
|
输出
输出只有一行,一个整数,为运算结果。然而:
-
如果出现除数为0的情况,则输出:Divided by zero!
-
如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
|
|
Solution
仍然使用条件判断语句模拟即可。
|
|
围栏
描述
小A打算新建一幢楼,这幢楼需要占用一块长方形的面积恰好为 $n$ 平方米的土地,且为了方便测量,这块土地的长宽必须为整数米。
小A需要在这幢楼外边修围栏,围栏长度为这块长方形的周长。
现在小A想要知道最小的围栏长度。
输入
第一行一个正整数 $n(n \leq 2 \times 10^9)$ ,表示楼的面积。
|
|
输出
一行一个数表示答案。数据保证答案在int范围内。
|
|
Solution
数据范围告诉我们,这题直接枚举长方形的短边即可,即 $1 \sim \sqrt{n}$ ,因此需要导入math库计算根号。
|
|
解密
描述
有一种简单的加密算法,对于一个长度为n的字符串,这个算法将会以第(n+1)/2(向下取整)个字符为中间轴(最左边的字符算第1个字符),将该字符写在密文的开头,然后对左半部分按照同样的办法进行加密并写下密文,再对右半部分按照同样的办法进行加密并写下密文。以此类推,直到左右部分为空,即完成加密。
例如,如果要对12345678进行加密,第一步将选择4作为中间轴,将其写在密文开头,然后继续对左右两边(123和5678)分别继续按这个算法处理并写下,我们可以将其记作4[123][5678]([]代表待加密处理的部分)。
对于左半部分123,中间轴是2,左半部分为1,右半部分为3因此加密结果为213(1的中间轴为1,左右均为空,因此结果为1,而3同理)。
对于右半部分5678,中间轴是6,左半部分为5,右半部分为78,因此加密结果为65[78] → 6578(78的中间轴为7,左半部分为空,右半部分为8,因此得到78)。
简单来说,整个加密过程如下:
12345678 → 4[123][5678] → 42[1][3][5678]→ 4213[5678] → 42136[5][78] → 42136578
因此,对12345678的加密结果为42136578。
现在给出一个长度为 $n(1 \leq n \leq 50000)$ 的由数字构成的字符串,这个字符串是加密后的密文,请你还原出加密前的明文。
输入
一行,一个长度为 $n(1 \leq n \leq 50000)$ 的由数字构成的字符串字符串,代表加密后的密文。
|
|
输出
一行,一个长度同样为 $n$ 的字符串,代表解密后的明文。
|
|
提示
324517689 → 1[3245][7689] → 12[3][45][7689] → 12345[7689] → 123456[7][89] → 123456789
Solution
首先,根据计概的经验,这道题应该使用递归再二分来做,有点像之后数据结构会学到的二叉树的先序遍历。
然而,在Python里面我们还不会递归(笔者注:当时老师还没讲函数相关内容)。
查资料后发现,在Python的函数中,传入的列表是可变对象,而其他不是,即函数中可变对象是可变的,而不可变对象只传值,可以类比到C++的引用和传值。
以及,Python函数的书写格式,在这题中也体现出来了,它不需要指定变量类型(虽然指定也可以)。
而最后的join函数,则代表用' ',即空格,将res中的元素连接起来,形成一个完整的字符串。
|
|