这个问题是我家居仔参加蓝桥杯考试的时候碰到的,在网上搜索了答案 ,主要 有两种:动态规划以及在不同位置插入乘号,说实话动态规划我没怎么明白(还是实力不行啊)。两三个月后,在和娃复盘,突然会了一种新的方法,实验了几次,bingo!也没有见到类似的答案~现在题目以及三种解法都贴出来,欢迎指正。
题目:蓝桥杯2022年3月13日小学组python选拔赛第五题
给定正整数1<=m<=5,和一个只包含数字的字符串,长度大于5小于等于20,将m个乘号插入到字符串中且不相邻,求插入后生成的乘法算式最大的方法,不能放在首尾,不含0。
动态规划法:
n,k = map(int,input().split())
s = list(input()) #此时的列表数据都是str类型
dp = [[0 for i in range(k+1)]for j in range(n+1)] #动规的数组
dp[1][0] = int(s[0])
for i in ra