前言/背景
第一次参加这个竞赛,记录一下比赛题解,希望和你一起进步
解题思路
1、严查枪火
X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。 小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
第一行给定一个数字n
接下来n行每行一个字符串
这道题我一开始以为是从给定的字符串中筛选违禁字符,后来发现只要判断给定的字符是不是违禁字符就可以了。
1. def solution(self, n, vector): 2. result = None 3. # TODO: 请在此编写代码 4. cnt=0 5. for i in vector: 6. # print(i) 7. # print(i.find("s")) 8. if i=='ak' or i=='m4a1' or i=='skr' : 9. cnt += 1 10. result=cnt 11. return result
2、鬼画符门
鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个 程序统计每年消耗数量最多的鬼画符吗?
第一行给定一个数字n
接下来n行每行一个字符串
这道题只要输出出现次数最多的那个字符串就可以了
1. def solution(self, n, vector): 2. result = None 3. # TODO: 请在此编写代码 4. 5. ans=[] 6. for i in vector: 7. ans.append(vector.count(i)) 8. result=vector[ans.index(max(ans))] 9. 10. return result
3、收件邮箱
已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用 的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
做一些逻辑判断即可
1. string = "atmxyatoxcoderdotcom" 2. 3. string = string.replace('dot','.') 4. flag=0 5. if string[0:2]=='at' : 6. string=string[2:len(string)].replace('at','@') 7. string='at'+string 8. flag=1 9. if string[-2:]=='at': 10. string = string[0:len(string)-2].replace('at', '@') 11. string = string + 'at' 12. flag = 1 13. 14. if flag: 15. string = string[2:len(string)-2].replace('at','@') 16. string = 'at' + string + 'at' 17. 18. print(string)
4、题目名称
最长递增的区间长度 给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3
1. def findLengthOfLCIS(self, nums): 2. n = len(nums) 3. start = 0 4. ans = 0 5. 6. for i in range(n): 7. if i > 0 and nums[i] <= nums[i - 1]: 8. start = i 9. 10. ans = max(ans, i - start + 1) 11. 12. print(ans) 13. findLengthOfLCIS(nums)