【CSDN编程竞赛第六期】python详解
生活随笔
收集整理的這篇文章主要介紹了
【CSDN编程竞赛第六期】python详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
CSDN編程競賽報名地址:https://edu.csdn.net/contest/detail/16
目錄
目錄
前言/背景
解題思路
1.嚴查槍火
2.鬼畫符門
3.收件郵箱
4.最長遞增的區(qū)間長度
結語
前言/背景
這是我個人參加的第三次CSDN競賽了。
第一次是第四期,寫出來前兩到簡單的題,題目有梯度
第二次是第五期,對我這個新人來說太難了,只能拿一點分,一道題都不能完全寫出來。題目對于新手來說太難了
第三次這次,題目又太簡單了,所有能完成全部題目。都是比較簡單的題目,主要是考驗速度。
也沒什么好多說的,直接上代碼
解題思路
1.嚴查槍火
1、題目名稱:嚴查槍火 X國最近開始嚴管槍火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 現(xiàn)在小Q查獲了一批違禁物品其中部分是槍支。 小Q想知道自己需要按照私藏槍火來關押多少人。 (只有以上三種槍被視為違法) 輸入描述: 第一行輸入整數(shù)n.(1<=n<=10000)表示攜帶違禁物品的人數(shù)。 以下n行表示違禁物品的名稱。 輸出描述: 輸出需要按照私藏槍火來關押的人。 輸入樣例: 3 Dsd ak 232asd 輸出樣例: 1這個不多說了,代碼:
class Solution:def __init__(self) -> None:passdef solution(self, n, vector):result = None# TODO: 請在此編寫代碼num=0for i in range(0,n):if vector[i]=='ak' or vector[i]=='m4a1' or vector[i]=='skr':num+=1result=numreturn 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)2.鬼畫符門
2、題目名稱:鬼畫符門 鬼畫符門,每年都會統(tǒng)計自己宗門鬼畫符消耗的數(shù)量,往年一直是大師兄管理, 但是這次鬼藝接手了, 你能幫鬼藝寫一個程序統(tǒng)計每年消耗數(shù)量最多的鬼畫符嗎? 輸入描述: 第一行輸入整數(shù)n.(1<=n<=1000) 以下n行輸入n個字符串。 輸出描述: 輸出答案字符串。 輸入樣例: 5 red red green grenn hen 輸出樣例: red利用字典的鍵和值,來將符和消耗量對應起來,代碼:
class Solution:def __init__(self) -> None:passdef solution(self, n, vector):result = None# TODO: 請在此編寫代碼ans={}for i in vector:if i in ans:ans[i] = ans[i] + 1else:ans[i] = 1max = 0for key in ans.keys():if ans[key] > max:max = ans[key]ans_s = keyresult = ans_sreturn 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)3.收件郵箱
3、題目名稱:收件郵箱 已知字符串str,str表示郵箱的不標準格式。 其中”.”會被記錄成”dot”,”@”記錄成”at”。 寫一個程序將str轉化成可用的郵箱格式。(可用格式中字符串中除了開頭結尾所有”dot”,都會被轉換,”at”只會被轉化一次,開頭結尾的不轉化) 輸入樣例:dotadwatdfatdotcom 輸出樣例:dotadw@dfat.com開頭結尾不轉換,可以先把第一個和最后一個字母去掉,再處理,代碼:
class Solution:def __init__(self) -> None:passdef solution(self, str):result = None# TODO: 請在此編寫代碼begin=str[0]str_1=str[1:]str_1=str_1[::-1]end=str_1[0]str_1=str_1[1:]str_1=str_1[::-1]ans_1=str_1.replace('at','@',1)ans_2=ans_1.replace('dot','.')ans_2=ans_2+endans_2=ans_2[::-1]ans_2=ans_2+beginans_2=ans_2[::-1]result=ans_2return result if __name__ == "__main__":str = input().strip()s = Solution()result = s.solution(str)print(result)4.最長遞增的區(qū)間長度
4、題目名稱:最長遞增的區(qū)間長度 給一個無序數(shù)組,求最長遞增的區(qū)間長度。 輸入描述: 第一行輸入整數(shù)n。 第二行輸入n個整數(shù)。 輸出描述: 輸出最長遞增的區(qū)間長度。 輸入樣例: 6 5,2,3,8,1,9 輸出樣例: 3不需多說,代碼:
class Solution:def __init__(self) -> None:passdef solution(self, n, arr):result = None# TODO: 請在此編寫代碼crr=arr[0]max=1max_crr=1for i in arr:if i>crr:max_crr+=1else:max_crr=1if max_crr>max:max=max_crrcrr=iresult=maxreturn 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编程竞赛第六期】python详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVASCRIPT精彩200例
- 下一篇: websocket python爬虫_p