LeetCode刷题实战592分数加减运算
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选!
今天和大家聊的问题叫做分数加减运算,我们先来看题面:
https:leetcodecn。comproblemsfractionadditionandsubtraction
Givenastringexpressionrepresentinganexpressionoffractionadditionandsubtraction,returnthecalculationresultinstringformat。
Thefinalresultshouldbeanirreduciblefraction。Ifyourfinalresultisaninteger,changeittotheformatofafractionthathasadenominator1。Sointhiscase,2shouldbeconvertedto21。
给定一个表示分数加减运算的字符串expression,你需要返回一个字符串形式的计算结果。
这个结果应该是不可约分的分数,即最简分数。如果最终结果是一个整数,例如2,你需要将它转换成分数形式,其分母为1。所以在上述例子中,2应该被转换为21。
示例示例1:
输入:expression1212
输出:01
示例2:
输入:expression121213
输出:13
示例3:
输入:expression1312
输出:16
解题
因为是分数相加,为了便于编写和理解我抽象出了Number表示分数,并实现了分数相加的add方法(通分分子相加)。
通分要利用到求最小公倍数,约分要用到求最大公因数。
之后就是字符串切割,切出每个带符号的分数,相加即可。classSolution{
classNumber{
分子
publicintnumerator;
分母
publicintdinominator;
Number(intnumerator,intdinominator){
this。numeratornumerator;
this。dinominatordinominator;
}
publicvoidadd(Numbernumber){
inttmpDgetMinMultiple(this。dinominator,number。dinominator);
inttmpNthis。numeratortmpDthis。dinominatornumber。numeratortmpDnumber。dinominator;
this。numeratortmpN;
this。dinominatortmpD;
}
}
publicStringfractionAddition(Stringexpression){
ListlistnewLinkedList;
intpre0;
for(inti0;iexpression。length;i){
if(i!0(expression。charAt(i)expression。charAt(i))){
list。add(stringToNumber(expression。substring(pre,i)));
prei;
}
}
list。add(stringToNumber(expression。substring(pre,expression。length)));
NumbernumbernewNumber(0,1);
for(Numbern:list){
number。add(n);
}
intgcdgcd(number。numerator,number。dinominator);
number。numeratornumber。numeratorgcd;
number。dinominatornumber。dinominatorgcd;
if(number。dinominator0){
number。numerator1;
number。dinominator1;
}
returnnumber。numeratornumber。dinominator;
}
字符串转换为分数
publicNumberstringToNumber(Stringexpression){
Stringstrsexpression。split();
returnnewNumber(Integer。valueOf(strs〔0〕),Integer。valueOf(strs〔1〕));
}
求最大公因数
publicintgcd(inta,intb){
if(b0){
returna;
}else{
returngcd(b,ab);
}
}
求最小公倍数
publicintgetMinMultiple(inta,intb){
returnabgcd(a,b);
}
}
作者:suspectX
链接:https:leetcodecn。comproblemsfractionadditionandsubtractionsolutionjavabysuspectx
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上期推文:
LeetCode1580题汇总,希望对你有点帮助!
LeetCode刷题实战581:最短无序连续子数组
LeetCode刷题实战582:杀掉进程
LeetCode刷题实战583:两个字符串的删除操作
LeetCode刷题实战584:寻找用户推荐人
LeetCode刷题实战585:2016年的投资
LeetCode刷题实战586:订单最多的客户
LeetCode刷题实战587:安装栅栏
LeetCode刷题实战588:设计内存文件系统
LeetCode刷题实战589:N叉树的前序遍历
LeetCode刷题实战590:N叉树的后序遍历
LeetCode刷题实战591:标签验证器
第四届双品网购节带动山东实现网络零售额超294亿元大众网海报新闻记者沈童济南报道记者从省商务厅获悉,为期15天的第四届双品网购节暨非洲好物网购节活动于5月12日落下帷幕,阿里巴巴、京东、美团、饿了么、抖音、快手、拼多多、……
生产责任延伸制推动家电回收利用,海尔智家探索工业互联网助力再5月12日,以落实双碳目标,推动生产者责任延伸制度为主题的第15届电器电子产品生产者责任延伸制度与回收处理技术国际大会通过线上与线下相结合方式召开,并在北京和青岛分别设立主会场……
阿里巴巴Easyexcel导入单张sheet(2。5同步读取0。基础信息(需要导入的excel表格数据,接收类)详见2。1文章阿里巴巴Easyexcel导入单张sheet(2。1指定字段对应表格列名)1。接口层读取excel同步的……
淘宝天猫推出25条纾困举措中证网讯(记者董添)5月15日,记者从淘宝方面获悉,淘宝天猫推出618纾困商家25条举措,包括金融补贴、物流疏通、流量补贴、疫情特别举措、技术升级等5个层面。其中,淘宝天……
oracle备份恢复oracle数据库备份恢复之逻辑备份与恢oracle版本oracle11g逻辑备份与恢复备份前可以先查看环境变量情况echoORACLEBASEechoORACLEHOMEechoORACLESIDech……
Java对象的字节大小计算一、java基本类型长度及对应对象的字节长度基本类型长度(字节)对象长度(字节)int4hr16hrshort2hr16hrlong8……
Java基础概述1。1Java语言背景介绍语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言。Java语言是美国Sun公司(Stanfor……
Scala语法基础Scala介绍初识ScalaScala是ScalableLanguage(可伸缩语言)的缩写,2003年诞生于瑞士洛桑联邦理工学院(EPFL),以实现高性能、高并发为目标。是运行在JV……
先让自己成为千里马的哲理故事要想遇到ldquo;伯乐rdquo;,自己先得成为ldquo;千里马rdquo;。今天小编就来分享先让自己成为ldquo;千里马rdquo;的哲理故事,希望读者喜欢。先让……
可爱的小乌龟作文我喜欢小狗,也喜欢小猫,但我更喜欢我家的小乌龟。我家的乌龟有两只,它们都身披椭圆形的壳,上面有规则的图案,格外显眼。我家乌龟最大的特点就是爱晒太阳,而且,晒太阳时还……
马,人类无言的朋友初中作文新世纪的头一个马年飞奔而来,神州欢腾,万象更新,人间竞相谈马论马。马,草食动物,性敏捷,体强健,善奔跑。马,有野马与家马之分。分布在新疆、甘肃、内蒙古等地的野马是国家保护……
伟大的母爱小学五年级作文450字我们从一出生,就寄托了父母的全部希望。他们把我们当做是一个金疙瘩和掌上明珠,托着,怕碎了;含着,怕化了。这里面,其中就包含着人世间最伟大的母爱。我十分清楚的记得在上二年级……
扫墓作文500字【第一篇】清晨,一阵喧闹声夹着鞭炮声传入耳畔。又是一年冬至。每逢冬至,人们就携带酒食、果品与纸钱上坟祭扫:大人挑着扁担,里面装满了供品,孩子们则晃晃悠悠地提着灯笼乐……
2022年,我们再来谈谈React状态管理1。什么是状态?jQuery时代,JS代码中混杂DOM结构,各个流程庞杂交织时,就形成面条式代码,当使用发布订阅模型时,调试会一团乱麻。jQuery是针对过程的命令……
Goodman全空气系统和传统中央空调比怎么样?空调最大的问题是四点:噪音、吹风、异味、维护。1。噪音来自于两处,一是室内设备吹风的噪音,二是室外机组的震动。新机一开始可能不会有外机震动的声音,但使用几年后就会有严重的……
我真后悔星期三的一节英语课上的事,真让我感到后悔。那天,谈老师夹着一叠英语练习卷走进教室,语气沉重地说:这次的练习你们做得很差,我越批越失望。说完,谈老师就把卷子发给了我们。当我……
什么方法可以改变命运?谢谢悟空小秘书邀请。首先强调,关于命运的问题,是文化领域的问题,我不是在写美文,我是在探讨命运问题。这个问题看似简单,因为涵盖极广,其实很难回答明白。命运,就……
尊重2分解从那以后,孩子变孤独了。回到家里,孩子一声不吭;在学校里,上课不认真听讲,下课就躲在厕所里。妈妈也跟爸爸离婚了。结果她在去找对象的路上被了;爸爸因为日渐恍惚跳楼死了……
小学生母爱作文200字体会到了妈妈的辛苦今天劳累了一天,我家因为没人,爸妈都上班去了所以放学后准备到小明家去做作业。刚到小明家就听见有有一只狗狗在叫,我一进去发现那只是只母狗,那时已经有5只小小的生命降临到这个……
关于游记作文400字游记是描写旅行见闻的一种散文形式。游记的取材范围极广,可以描绘名山大川的秀丽瑰奇,可以记录风土人情的有趣阜盛,可以反映一人一家的日常生活面貌,也可以记下一国的重大事件,并表达作……
关于冬天的作文冬天的黄叶看着窗外那一片片黄叶,我想起了他们,他们是否在老家看着门外的一辆辆车子飞速驶过?是否在互相沉默着,等待着?是否在大树下摇着蒲扇在乘凉?我真希望我变得很小很小,能载着黄叶随风飘到……
浙江省整治虚拟货币挖矿工作小组提醒不要挖矿不要挖矿不要挖矿日前,不少浙江市民都收到了一条来自于浙江省整治虚拟货币挖矿工作小组的短信,提醒市民们近期虚拟货币挖矿与交易炒作活动抬头,严重扰乱经济金融秩序;虚拟货币挖矿活动已列为国家明令淘汰……
小米否认裁员10微信内测跨境电商平台云逛全球微信内测跨境电商平台云逛全球:邀请海淘商家小程序入驻日前,微信测试了一款跨境电商小程序云逛全球,主体为财付通支付科技有限公司,产品介绍为汇聚全球优质海淘小程序,足不出户云……
直击行业痛点星卫士智能手表撬动互联网健康新蓝海近年来,随着智能硬件、云服务和人工智能等科技浪潮的兴起,加上疫情时代人们空前重视健康,AIoT大健康赛道出现了爆发式增长。正文:高速发展的我国AIoT(人工智能和物……