leetcode-553. 最优除法


题目

示例

方法一:数学思想

思路:

我的答案(python)

class Solution:
    def optimalDivision(self, nums: List[int]) -> str:
        n = len(nums)
        if n==1:
            return str(nums[0])
        if n==2:
            return str(nums[0])+"/"+str(nums[1])
        else:
            res = str(nums[0])+"/("
            for i in range(1,n-1):
                res+=str(nums[i])+"/"
            res+=str(nums[n-1])+")"
            return res

官方答案(python)

class Solution:
    def optimalDivision(self, nums: List[int]) -> str:
        if len(nums) == 1:
            return str(nums[0])
        if len(nums) == 2:
            return str(nums[0]) + "/" + str(nums[1])
        return str(nums[0]) + "/(" + "/".join(map(str, nums[1:])) + ")"

join()方法
https://www.runoob.com/python/att-string-join.html

#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );

方法二:动态规划

官网链接:https://leetcode-cn.com/problems/optimal-division/solution/zui-you-chu-fa-by-leetcode-solution-lf4c/