CSDN 编程竞赛·第六期 为笔者参加的第二次 CSDN 编程竞赛,本期题目难度过低,所以这期就不分析思路了,简单记录一下自己的题解吧。
题目描述: X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。 小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)。
笔者的题解:
class Solution:
def __init__(self) -> None:
pass
def solution(self, n, vector):
result = 0
for i in vector:
if i in ('ak', 'm4a1', 'skr'):
result += 1
return result
if __name__ == "__main__":
n = int(input().strip())
vector = []
for i in range(n):
vector.append(input().strip())
s = Solution()
result = s.solution(n, vector)
print(result)
题目描述: 鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个 程序统计每年消耗数量最多的鬼画符吗?
笔者的题解:
class Solution:
def __init__(self) -> None:
pass
def solution(self, n, vector):
result = None
a = {}
for i in vector:
if i in a.keys():
a[i]+=1
else:
a[i]=1
b=list(a.items())
b.sort(key=lambda x:x[1])
result = b[-1][0]
return result
if __name__ == "__main__":
n = int(input().strip())
vector = []
for i in range(n):
vector.append(input().strip())
s = Solution()
result = s.solution(n, vector)
print(result)
题目描述: 已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用 的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
笔者的题解:
class Solution:
def __init__(self) -> None:
pass
def solution(self, str):
result = None
if len(str)<4:
return str
s1 = str[1:-1].replace('dot','.')
a = s1.find('at')
if a != -1:
s1 = s1[0:a] + '@' + s1[a+2:]
result = str[0] + s1 + str[-1]
return result
if __name__ == "__main__":
str = input().strip()
s = Solution()
result = s.solution(str)
print(result)
题目描述: 给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3。
笔者的题解:
class Solution:
def __init__(self) -> None:
pass
def solution(self, n, arr):
result = 0
cnt = 1
for i in range(1,n):
if arr[i]>arr[i-1]:
cnt += 1
else:
if result < cnt:
result = cnt
cnt = 1
if cnt > result:
result = cnt
return result
if __name__ == "__main__":
n = int(input().strip())
arr = [int(item) for item in input().strip().split()]
s = Solution()
result = s.solution(n, arr)
print(result)
以上就是第六期CSDN编程竞赛的全部内容了,如有错误,请读者指正。