数字用乘号拆分后乘积的最大值问题

本文介绍了蓝桥杯竞赛中的一道题目,要求在给定的数字字符串中插入乘号以获得最大乘积。文中提供了动态规划、插入不同位置以及切片法三种解法,并分享了作者对于每种方法的理解和实现,适用于初学者和参赛者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题是我家居仔参加蓝桥杯考试的时候碰到的,在网上搜索了答案 ,主要 有两种:动态规划以及在不同位置插入乘号,说实话动态规划我没怎么明白(还是实力不行啊)。两三个月后,在和娃复盘,突然会了一种新的方法,实验了几次,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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值