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