题解系列018 + 比赛系列007 | CSDN 第二十二届编程竞赛题解 + 建议

一、总体情况

得分:25+25+25+25=100(排名第9)

题解系列018 + 比赛系列007 | CSDN 第二十二届编程竞赛题解 + 建议_第1张图片

二、题目分析

第一题: C++难题——大数加法

题目

题解系列018 + 比赛系列007 | CSDN 第二十二届编程竞赛题解 + 建议_第2张图片

分析

本人用的 python, 所以与我无关, 正常来说模拟小学的竖式加法即可, 详解可以看洛谷上的这道题. 当然 python 一行就能搞定:

解答

class Solution:
	def __init__(self) -> None:
		pass
	def solution(self, n, m):
		result = None
		result = m+n
		return result
if __name__ == "__main__":
	n = int(input().strip())
	m = int(input().strip())
	sol = Solution()
	result = sol.solution(n, m)
	print(result)

第二题: 最长回文串

题目

题解系列018 + 比赛系列007 | CSDN 第二十二届编程竞赛题解 + 建议_第3张图片

分析

先写个经典的回文数检验:

def is_pal(s):
    l = len(s)
    for i in range(l):
        if s[i]!=s[l-1-i]:
            return False
    return True

然后从头到尾暴力检验即可.

代码

def is_pal(s):
    l = len(s)
    for i in range(l):
        if s[i]!=s[l-1-i]:
            return False
    return True

class Solution:
    def __init__(self) -> None:
        pass
    
    def solution(self, s):
        l = len(s)
        maxi = -1
        strip = []
        for j in range(l-1, -1, -1):
            for i in range(j, -1, -1):
                
                if is_pal(s[i:j+1]):
                    if(len(s[i:j+1])>=maxi):
                        strip = s[i:j+1]
                        maxi = len(strip)

        return strip

if __name__ == "__main__":
    str = input().strip()
    sol = Solution()
    result = sol.solution(str)
    print(result)

第三题: 求最小元素

题目

题解系列018 + 比赛系列007 | CSDN 第二十二届编程竞赛题解 + 建议_第4张图片

分析

本题是不是出错了? 理论上要限定 “不能用内置 min 函数” 之类的才可能有意义.

代码

class Solution:
	def __init__(self) -> None:
		pass
	def solution(self, n, arr):
		result = None
		result = min(arr)
		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)

第四题: 最大数

题目

题解系列018 + 比赛系列007 | CSDN 第二十二届编程竞赛题解 + 建议_第5张图片

分析

这题的关键点在于注意到贪心技巧的合理性: 即 “没有回头路可走”. 因此前 m + 1 m+1 m+1 位中我们不得不挑一个最大的数, 把余量扣掉. 这个思路和已有的一篇题解几乎雷同, 代码也大致相似, 为了避免抄袭嫌疑就贴上了: 传送门.


欢迎关注我的博客!

Find me on GitHub: GitHub profile page

Gitee account (under construction): Gitee site

GitLab account (under construction): GitLab site

Also find me on Luogu:Luogu profile

欢迎大家关注我,在项目上与我协作哦!

你可能感兴趣的:(比赛,题解系列,问题解决,算法,python)