题解 | #密码截取#

密码截取

http://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

暴力破解用例只过20个
def Catcher_b(s):
	n = len(s)
	maxlen = 1
	for i in range(n):
		for j in range(i,n+1):
			if s[i:j] == s[i:j][::-1]:
				curlen = j - i
			if maxlen < curlen :
				maxlen = curlen
	return maxlen

s = input().strip()
print(Catcher_b(s))


动态规划用空间换时间
def Catcher(s):
	n = len(s)
	if n == 1 :
		return n
	dp = [[False for _ in range(n)] for _ in range(n)]
	maxlen = 1
	for j in range(1,n):
		for i in range(j):
			if j - i <=2 :
				if s[i] == s[j]:
					dp[i][j] = True
					curlen = j - i + 1
					# print(curlen)
			else:
				if s[i] == s[j] and dp[i+1][j-1]:
					dp[i][j] = True
					curlen = j - i + 1
					# print(curlen)
			if dp[i][j]:
				if maxlen < curlen :
					maxlen = curlen
				
	return maxlen
	# for i in dp:
	# 	print(i)
s = input().strip()
print(Catcher(s))


全部评论

相关推荐

点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
10-29 15:38
门头沟学院 Java
榕城小榕树:难道你简历里写了配送路径优化算法?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务