553.最优除法--python

    xiaoxiao2022-07-02  112

    题:给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。要找出怎么添加括号,才能得到最大的结果,并且返回的表达式不应该含有冗余的括号。

    法:可以发现nums中第一个数永远在分子上,第二个数永远作为被除数在分母上,那么如果后面的数都可以在分子上,就可以获得最大结果。所以根据例子:给定 [1000,100,10,2],输出 "1000/(100/10/2)",我们发现要在第二个数的前面添加括号,并且后面都是除法。

    注意:要考虑len(nums)==1时,不应该存在‘/'和括号;len(nums)==2时,不应该存在括号。这两种情况单拿出来考虑。

    def optimalDivision(self, nums): """ :type nums: List[int] :rtype: str """ length=len(nums) if length==1: return str(nums[0]) elif length==2: return str(nums[0])+"/"+str(nums[1]) res='' for i in range (length): if i==0: res+=str(nums[i])+"/(" elif i==length-1: res+=str(nums[i])+")" else: res+=str(nums[i])+'/' return res  
    最新回复(0)