592.分?jǐn)?shù)加減運(yùn)算 純純的數(shù)學(xué)題削葱,Python 7行代碼+詳細(xì)思路分享料滥!

592.分?jǐn)?shù)加減運(yùn)算

https://leetcode.cn/problems/fraction-addition-and-subtraction/solution/by-qingfengpython-g1mn/

難度:中等

題目:

給定一個(gè)表示分?jǐn)?shù)加減運(yùn)算的字符串expression,你需要返回一個(gè)字符串形式的計(jì)算結(jié)果讳推。

這個(gè)結(jié)果應(yīng)該是不可約分的分?jǐn)?shù)顶籽,即最簡分?jǐn)?shù)。如果最終結(jié)果是一個(gè)整數(shù)银觅,例如2礼饱,你需要將它轉(zhuǎn)換成分?jǐn)?shù)形式,其分母為1。
所以在上述例子中, 2應(yīng)該被轉(zhuǎn)換為2/1镊绪。

提示:

  • 輸入和輸出字符串只包含'0' 到'9'的數(shù)字匀伏,以及'/', '+' 和'-'。
  • 輸入和輸出分?jǐn)?shù)格式均為±分子/分母蝴韭。如果輸入的第一個(gè)分?jǐn)?shù)或者輸出的分?jǐn)?shù)是正數(shù)够颠,則'+'會(huì)被省略掉。
  • 輸入只包含合法的最簡分?jǐn)?shù)榄鉴,每個(gè)分?jǐn)?shù)的分子與分母的范圍是[1,10]履磨。如果分母是1,意味著這個(gè)分?jǐn)?shù)實(shí)際上是一個(gè)整數(shù)庆尘。
  • 輸入的分?jǐn)?shù)個(gè)數(shù)范圍是 [1,10]剃诅。
  • 最終結(jié)果的分子與分母保證是 32 位整數(shù)范圍內(nèi)的有效整數(shù)。

示例:

示例1:

輸入:expression= "-1/2+1/2"
輸出: "0/1"
示例 2:

輸入:expression= "-1/2+1/2+1/3"
輸出: "1/3"
示例 3:

輸入:expression= "1/3-1/2"
輸出: "-1/6"

分析

首先這道題的提示中已經(jīng)明確不許考慮異常用例的場景驶忌,那么就簡單很多了矛辕。
這里注意一個(gè)小細(xì)節(jié),數(shù)字只有0-9付魔,不會(huì)存在兩位數(shù)聊品,使得難度進(jìn)一步降低。
下來考慮以下抒抬,我們該以什么方式分割這些表達(dá)式:

  1. 表達(dá)式字符串是一個(gè)個(gè)的個(gè)位數(shù)除法公式
  2. 除了除法以外只涉及+ 杨刨、 - 法兩個(gè)符號(hào)
  3. 減法可以轉(zhuǎn)化為 (+)-的方式,比如 -10 == (+)-10
  4. 那么我們使用replace將所有-號(hào)轉(zhuǎn)化為+-
  5. 再通過+號(hào)即可分割所有個(gè)位的除法公式

通過上述思路已經(jīng)將表達(dá)式分割成單個(gè)的除法擦剑,下來該怎么做妖胀?

既然最終仍要表達(dá)仍需要分式結(jié)尾,那么可以通過求所有分母的最小公倍數(shù)惠勒,然后將每個(gè)分子等比放大求和赚抡。
最終將分子總和與分母的最小公倍數(shù),求最大公約數(shù)(即分子纠屋、分母約分)涂臣,返回答案即可。

解題:

Python:

from math import gcd
class Solution:
    def fractionAddition(self, expression: str) -> str:
        stack = [list(map(int, i.split('/'))) for i in expression.replace('-', '+-').split('+') if i]
        mod, total = 1, 0
        for i in stack:
            mod *= i[1] // gcd(mod, i[1])
        for i in stack:
            total += mod // i[1] * i[0]
        return '%s/%s' % (total // gcd(total, mod), mod // gcd(total, mod))

歡迎關(guān)注我的公_眾號(hào): 清風(fēng)Python售担,帶你每日學(xué)習(xí)Python算法刷題的同時(shí)赁遗,了解更多python小知識(shí)。

我的個(gè)人博客:https://qingfengpython.cn

力扣解題合集:https://github.com/BreezePython/AlgorithmMarkdown

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末族铆,一起剝皮案震驚了整個(gè)濱河市岩四,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哥攘,老刑警劉巖剖煌,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件材鹦,死亡現(xiàn)場離奇詭異,居然都是意外死亡耕姊,警方通過查閱死者的電腦和手機(jī)桶唐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茉兰,“玉大人尤泽,你說我怎么就攤上這事“畎睿” “怎么了安吁?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵醉蚁,是天一觀的道長燃辖。 經(jīng)常有香客問我,道長网棍,這世上最難降的妖魔是什么黔龟? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮滥玷,結(jié)果婚禮上氏身,老公的妹妹穿的比我還像新娘。我一直安慰自己惑畴,他們只是感情好蛋欣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著如贷,像睡著了一般陷虎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杠袱,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天尚猿,我揣著相機(jī)與錄音,去河邊找鬼楣富。 笑死凿掂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的纹蝴。 我是一名探鬼主播庄萎,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼塘安!你這毒婦竟也來了糠涛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤耙旦,失蹤者是張志新(化名)和其女友劉穎脱羡,沒想到半個(gè)月后萝究,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锉罐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年帆竹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脓规。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栽连,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侨舆,到底是詐尸還是另有隱情秒紧,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布挨下,位于F島的核電站熔恢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臭笆。R本人自食惡果不足惜叙淌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望愁铺。 院中可真熱鬧鹰霍,春花似錦、人聲如沸茵乱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓶竭。三九已至督勺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間在验,已是汗流浹背玷氏。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腋舌,地道東北人盏触。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像块饺,于是被迫代替她去往敵國和親赞辩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容