1.
Description
给定用于表示年、月、日的3个整数y、m和d,判定该日期是该年的第几天。
Input
输入用于表示日期(年、月、日)的3个正整数y、m和d,肯定是正整数,但是否属于合法的日期数据未知。
Output
返回值为整型
如所给日期数据不合法,返回-1。
如所给日期数据合法,则返回该日期是该年的第几天。
将代码写入函数func1
Sample Input
func1(2019,1,32)
func1(2019,3,1)
Sample Output
-1
60
2.
Description
已知每只鸡有2只脚,每只兔子有4只脚,求解鸡兔同笼问题。给定鸡和兔子的头的总数m和脚的总数n。求鸡和兔子的数量。
Input
给定m和n为整数。
Output
如果m和n中任何一个小于0,返回None。
如任何一个解不是整数,或任何一个解小于0,返回None。
返回元组(鸡的数量, 兔子的数量)
将代码写入函数func2
Sample Input
func2(35, 110)
func2(35, 111)
func2(0, 0)
func2(100, 100)
Sample Output
(15, 20)
None
(0, 0)
None
3.
Description
判定一个整数列表里的元素排序后能否构成等差数列。
Input
给定lst为整数列表或空列表,不保证列表元素有序。
Output
如果列表为空列表或只有一个元素,返回None。
如果列表有两个元素,返回True。
如果列表有三个及以上的元素,根据情况返回True或False。
将代码写入函数func3
Sample Input
func3([1])
func3([19, 1])
func3([19, -1, 100])
func3([33, -7, 3, 13, 43, 53, 23])
Sample Output
None
True
False
True
4.
Description
计算并返回整数列表的中位数。中位数的含义:对于一个有序的数列,排列位置位于整个列表中间的那个元素的值即为中位数。如果数列有偶数个值,取最中间的两个数值的平均数作为中位数。
Input
给定lst为列表,不保证列表元素有序,不保证每个顶层元素都是整数,也不保证列表中一定有元素。
Output
如果列表为空列表,返回None。
如果列表的顶层元素出现整数以外的类型,返回None。
对于非空的整数列表返回中位数(结果取整)。
将代码写入函数func4
Sample Input
func4([1, "abc"])
func4([19, [1, 2, 3]])
func4([19, -1, 100])
func4([19, -1, 1000, 101])
Sample Output
None
None
19
60
5.
Description
输入一个包含3到11个单词的字符串,单词与单词之间用一个空格分开,最前和最后没有空格,其中的单词一定是0-9数字的英文单词(单词的字母可能大写也可能小写)。请编写程序将其转换为阿拉伯数字的字符串。
Input
给定sentence为字符串。
Output
返回电话号码字符串,如果输入的长度不合法则返回None。
将代码写入函数func5
Sample Input
func5("one one two two three three four")
func5("One One Zero")
func5("Nine one one")
Sample Output
"1122334"
"110"
"911"
6.
Description
给定4个整数a, b, c, d,求集合s = {x / y | a <= x <= b, c <= y <= d}中元素的个数。
Input
整数a, b, c, d满足1 <= a <= b <= 100, 1 <= c <= d <= 100。
Output
返回s中元素的个数。
将代码写入函数func6
Sample Input
func6(1, 10, 1, 1)
func6(1, 10, 1, 10)
func6(10, 10, 1, 10)
Sample Output
10
63
10
7.
Description
输入两个字符串参数s1, s2(均不为空字符串),和一个非零正整数n。请按照如下规则将字符串s2插入到s1中,并返回生成的字符串:
s1中每隔n个字符,插入一次s2;
如果最后一次不足n个字符,则先用空格符号补全到n个字符,然后插入一次s2
Input
s1, s2均不为空字符串,n为非零正整数
Output
返回结果字符串
将代码写入函数func7(s1, s2, n)
Sample Input
func7('abcd','#',1)
func7('abcd','##',2)
func7('abcd','##',3)
func7('abcd','##',5)
Sample Output
'a#b#c#d#'
'ab##cd##'
'abc##d ##'
'abcd ##'
8.
Description
给定一个字符串,找出其中“<tag>”形式的标签片段,并替换成“[TAG-len]”形式的片段。其中tag是由字母、数字和下划线构成可变的标签文本,TAG是将tag中的英文字母全部转换成大写字母后的形式,len是TAG的长度,详见测试用例。
Input
给定sentence为字符串,不包含中文。字符串中可替换部分可能出现0次或多次。
Output
返回经过替换的字符串。如没有需要替换的内容,则原样返回。
将代码写入函数func8
Sample Input
func8("President <4t>")
func8("hello world")
func8("he defended <_abc>, his decision to <43>")
Sample Output
"President [4T-2]"
"hello world"
"he defended [_ABC-4], his decision to [43-2]"
Reference Code
import math
import re
def func1(y,m,d,md=[31,28,31,30,31,30,31,31,30,31,30,31]):
if (y%4==0 and y%100!=0) or y%400==0:md[1]=29
return -1 if m>12 or d>md[m-1] else sum(md[i] for i in range(m-1))+d
def func2(m,n):
return None if m<0 or n<0 or n%2!=0 or not 2*n>=4*m>=n else (2*m-n//2,n//2-m)
def func3(lst,i=0,d=0):
return None if len(lst)<2 else func3(sorted(lst),1,sorted(lst)[1]-sorted(lst)[0]) if i==0 else True if i==len(lst) else False if lst[i]-lst[i-1]!=d else func3(lst,i+1,d)
def func4(lst):
for i in lst:
if type(i)!=int:return None
return (sorted(lst)[len(lst)//2]+sorted(lst)[~(len(lst)//2)])//2
def func5(sentence,wton={'one':1,'two':2,'three':3,'four':4,'five':5,'six':6,'seven':7,'eight':8,'nine':9,'zero':0}):
sentence=sentence.lower().split()
if not 3<=len(sentence)<=11:return None
return ''.join([str(wton[i]) for i in sentence])
def func6(a,b,c,d):
return len(set(x/y for x in range(a,b+1) for y in range(c,d+1)))
def func7(s1,s2,n,ans=''):
if len(s1)%n!=0:s1=s1+' '*(n-len(s1)%n)
for i in range(len(s1)//n):ans+=s1[i*n:(i+1)*n]+s2
return ans
def func8(sentence):
for i in re.findall(r'<(.*?)>',sentence):sentence=re.sub(r'<.*?>','['+i.upper()+r'-'+str(len(i))+']',sentence,1)
return sentence
if __name__ == "__main__":
pass