D


私信TA

用户名:ALS1111

访问量:22109

签 名:

等  级
排  名 55
经  验 11377
参赛次数 0
文章发表 132
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:

递归搜索。

假设字符串长度为n,下标从0开始。则我们可以在第0~n-2位数后面放”ד号。

接下来遍历所有符合条件的位置,每个位置有两种情况,放和不放。

求出所有符合条件的结果,即可求出答案。

具体求解过程可参考下面代码,有详细注释。

注意事项:

参考代码:

def dfs(T,now):      #T中记录乘号的位置,now为遍历到s中的第几个数  
    global n,m,s,ans  
  
    if len(T) == m:  #如果T中已经标记了m个乘号位置  
        num = 1      #存放乘积  
        t = 0  
        for item in T:   #求乘积  
            num = num * int(s[t:item+1])  
            t = item+1  
        num = num * int(s[t:])  #不要忘记最后一个要乘的数  
        if num > ans:  
            ans = num  
        return  
  
    if now >= n-1:  
        return  
  
    dfs(T+[now],now+1)   #在第now位数后面放乘号  
    dfs(T,now+1)         #不在第now位数后面放乘号  
  
  
if __name__ == '__main__':  
    n,m = map(int,input().strip().split())  
    s = input().strip()  
    ans = 0    #存放最终答案  
    dfs([],0)    
    print(ans)


 

0.0分

2 人评分

  评论区

  • «
  • »