解题思路:
dp[i]=max(dp[i-1],v[i]+dp[i-2]) # v[i] 表示值&&i-2至少要隔开一个距离
注意事项:
参考代码:
list1=list(input())
temp=list(chr(i) for i in range(96,123))
dict1={}
for i,j in enumerate(temp[1:]):
dict1[j]=i+1
dp=list(0 for i in range(len(list1)))
dp[0]=dict1[list1[0]]
for i in range(1,len(list1)):
# 取和不取
v1=dp[i-1]
v2=dict1[list1[i]]
if i>=2:
v2+=dp[i-2]
mmax=max(v1,v2)
dp[i]=mmax
print(dp[-1])
0.0分
3 人评分
Pascal三角 (C语言代码)格式错误浏览:551 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1114 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:588 |
WU-整除问题 (C++代码)浏览:648 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
1050题解(结构体数组与结构体指针的使用)浏览:1216 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:505 |
简单的a+b (C语言代码)浏览:672 |