第21期比赛页面:第21期编程竞赛
1、 合并序列
有
N
N
N个单词和字符串
T
T
T,按字典序输出以字符串
T
T
T为前缀的所有单词。
输入描述:
输入文件第一行包含一个正整数
N
N
N;
接下来
N
N
N行,每行一个单词,长度不超过
100
100
100;
最后一行包含字符串
T
T
T。
所有字符均为小写字母。
输出描述:
按字典序升序输出答案。
输入样例:
6
na
no
ki
ki
ka
ku
k
输出样例:
ka
ki
ki
ku
示例2
输入
5
oi
od
ki
ko
ka
k
输出
ka
ki
ko
参考代码
class Solution:
def __init__(self) -> None:
pass
def solution(self, N, arr, T):
result = None
# TODO: 请在此编写代码
result=[]
for a in arr:
if a[0:len(T)]==T:
result.append(a)
result.sort()
return result
if __name__ == "__main__":
N = int(input().strip())
arr = []
for i in range(N):
arr.append(input().strip())
T = input().strip()
sol = Solution()
result = sol.solution(N, arr, T)
print("\n".join(result))
2、 千问万问
给定大小为n的整数序列A.
现在会有q次询问,询问子区间的整数数量。
输入描述:
第一行输入整数n,q.(1<=n,q<=1000)
第二行输入n个整数.(1<=a<=100000)
以下q行每行两个整数l,r。(1<=l,r<=100000)
输出描述:
输出区间内的整数数量。
输入样例:
10 3
1 2 3 4 5 6 7 8 9 10
1 1
1 2
1 3
输出样例:
1
2
3
参考代码
注:以下代码能够通过示例,理论上来说也能够通过测试用例,但该题测试数据存在问题,导致无法通过。
class Solution:
def __init__(self) -> None:
pass
def solution(self, n, q, nums, arr):
result = None
# TODO: 请在此编写代码
result=[]
nums.sort()
for a in arr:
r=0
for n in nums:
if a[0]<=n<=a[1]:
r+=1
result.append(str(r))
return result
if __name__ == "__main__":
arr_temp = [int(item) for item in input().strip().split()]
n = int(arr_temp[0])
q = int(arr_temp[1])
nums = [int(item) for item in input().strip().split()]
arr = []
for i in range(q):
arr.append([int(item) for item in input().strip().split()])
sol = Solution()
result = sol.solution(n, q, nums, arr)
print("\n".join(result))
3、 连续子数组的最大和
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和 。
输入描述:
第一行输入整数数组的大小n。(1<=n<=1000)
第二行给出n个整数a。(-1e5<=a<=1e5)
输出描述:
输出答案。
输入样例:
9
-2 1 -3 4 -1 2 1 -5 4
输出样例:
6
参考代码
class Solution:
def __init__(self) -> None:
pass
def solution(self, n, arr):
result = None
# TODO: 请在此编写代码
result=arr[0]
t=0
for a in arr:
if t<0:
t=a
else:
t+=a
if t>result:
result=t
return result
if __name__ == "__main__":
n = int(input().strip())
arr = [int(item) for item in input().strip().split()]
sol = Solution()
result = sol.solution(n, arr)
print(result)
4、 降水量
给定n个柱面的高度,表示降雨某地n块区域的海拔高度。
计算降雨之后该地最大储水面积。如果低于地平线,也就是小于0,则一定积水
输入描述:
第一行输入整数n.(1<=n<=10000)
第二行输入n个高度整数h。(-10000<=h<=10000)
输出描述:
输出答案。
输入样例:
12
0 1 0 2 1 0 1 3 2 1 2 1
输出样例:
6