返回题解分享
讨论 / 题解分享/ 帖子详情

松散子序列(编程题) - 题解

Python代码

def dp_calculate(s):
    val = [ord(c) - ord('a') + 1 for c in s]  # 计算每个字符对应的数值
    n = len(s)
    # 使用动态规划来计算最大累积和
    dp = [0] * n
    for i in range(n):
        if i < 2:#0,1特殊位置特殊处理
            dp[i] = val[i]
        else:
            dp[i] = max(dp[i-1], dp[i-2] + val[i])
    return dp[-1]  # 返回最后一个字符的最大累积和

# 从用户接收输入并调用函数
s = input()
print(dp_calculate(s))
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!