553. Optimal Division

Given a list of positive integers, the adjacent integers will perform the float division. For example, [2,3,4] -> 2 / 3 / 4.

However, you can add any number of parenthesis at any position to change the priority of operations. You should find out how to add parenthesis to get the maximum result, and return the corresponding expression in string format. Your expression should NOT contain redundant parenthesis.

Example:

Input: [1000,100,10,2]
Output: "1000/(100/10/2)"
Explanation:
1000/(100/10/2) = 1000/((100/10)/2) = 200
However, the bold parenthesis in "1000/((100/10)/2)" are redundant, 
since they don't influence the operation priority. So you should return "1000/(100/10/2)". 

Other cases:
1000/(100/10)/2 = 50
1000/(100/(10/2)) = 50
1000/100/10/2 = 0.5
1000/100/(10/2) = 2

Note:

The length of the input array is [1, 10].
Elements in the given array will be in range [2, 1000].
There is only one optimal division for each test case.

思路:x1/x2/.../xn,無論在之間加多少個括號,x1總是作為被除數,x2總是作為除數,因此結果最大的做法是將x3到xn的所有除法轉換為乘法,即x1/(x2/.../xn)=x1/x2*x3*...*xn.

string optimalDivision(vector<int>& nums) {
    string res;
    int n = nums.size();
    //特殊情況處理
    if (n == 1) return to_string(nums[0]);
    if (n == 2) return to_string(nums[0]) + "/" + to_string(nums[1]);
    //一般情況
    res = to_string(nums[0]) + "/(";
    for (int i = 1; i < n - 1; i++) {
        res += to_string(nums[i]) + "/"; //注意運算符優(yōu)先級,+比+=要優(yōu)先,這樣的用法是可以的
    }
    res += to_string(nums[n - 1]) + ")";
    return res;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Given a list of positive integers, the adjacent integers ...
    matrxyz閱讀 232評論 0 0
  • 來源: http://www.douban.com/group/topic/14820131/ 調整變量格式: f...
    MC1229閱讀 6,959評論 0 5
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,775評論 0 33
  • 今晚刷了個朋友圈,看到了高中的班主任發(fā)了一條朋友圈——“匆忙來,匆忙去,非常感謝這些年你們的幫助和支持!”外加九宮...
    載風載塵閱讀 408評論 1 1
  • 有壓力之時,身體就會因為過度的緊繃而出現(xiàn)某種病癥,腦子隱隱泛暈,強行吃下兩顆感冒藥來震住,本打算早起模擬一套題,卻...
    草木吟閱讀 293評論 0 0