贴个不用排序的代码,不知道对不对,欢迎指错 # 输入代码 import sys inp = [] while True: line = sys.stdin.readline().strip() if line == &(3091)#39;': break inp.append(line) (3092)# n = int(inp[0][0]) # 长度 num = inp[1:] n = len(num) (3093)# num = sorted(num) dp = [[0 for _ in range(26)] for _ in range(26)] # dp[i][j]表示两个字母之间的最大长度,dp[0][1]为以字符a为开头,字符b为结尾的最大长度,dp[0][25]表示以字符a为开头,字符z为结尾的最大长度 for i in range(n): temp = num[i] for j in range(ord(temp[0]) - 97 + 1): for k in range(25, ord(temp[-1]) - 97 - 1, -1): dp[j][k] = max(dp[j][k], dp[j][ord(temp[0]) - 97] + dp[ord(temp[-1]) - 97][k] + len(temp)) print(dp[0][25])

相关推荐

04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客企业服务