算法学习:LeetCode-592. 分数加减运算
1.题目
给定一个表示分数加减运算的字符串 expression ,你需要返回一个字符串形式的计算结果。
这个结果应该是不可约分的分数,即最简分数。 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母为 1。所以在上述例子中, 2 应该被转换为 2/1。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/fraction-addition-and-subtraction
2.解题思路
跪了orz.题目不难,关键是如何实现。
分数运算->通分。
化简结果->分子分母同除最大公约数。
需要注意的点:
1.字符转换为数字
int a='1'-0; //a=1
2.C++ 函数的使用
string类 :求字符串长度: expression.size()
判断一个字符是否为数字:isdigit()
求最大公约数:gcd()
数字转化为字符串:tostring()
3.代码
class Solution {
public:string fractionAddition(string expression) {int fz=0,fm=1;//分子,分母int index=0,n=expression.size();while(index<n){int fz1=0,sign=1;//读入分子,符号位if(expression[index]=='-' || expression[index]=='+'){sign=expression[index++]=='-'?-1:1;}while(index<n && isdigit(expression[index])){fz1=fz1*10+expression[index++]-'0';}fz1=sign*fz1;index++;//读分母int fm1=0;while(index<n && isdigit(expression[index])){fm1=fm1*10+expression[index++]-'0';}//利用通分计算一次结果fz=fz*fm1+fz1*fm;fm=fm*fm1;}if(fz==0){return"0/1";}//约分int common_part=gcd(abs(fz),fm);return to_string(fz/common_part)+"/"+to_string(fm/common_part);}
};
算法学习:LeetCode-592. 分数加减运算相关推荐
- Leetcode 592. 分数加减运算 C++
Leetcode 592. 分数加减运算 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 ...
- LeetCode 592. 分数加减运算(字符串+最大公约数)
1. 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母 ...
- 图解LeetCode——592. 分数加减运算(难度:中等)
一.题目 给定一个表示分数加减运算的字符串 expression,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即:最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成 ...
- 592.分数加减运算 纯纯的数学题,Python 7行代码+详细思路分享!
592.分数加减运算 https://leetcode.cn/problems/fraction-addition-and-subtraction/solution/by-qingfengpython ...
- LeetCode 0592. 分数加减运算:手把手分步のC++讲解
[LetMeFly]592.分数加减运算:手把手分步のC++讲解 力扣题目链接:https://leetcode.cn/problems/fraction-addition-and-subtracti ...
- 【leetcode】592.分数加减运算(python)
目录 一.题目描述 二.解题思路 2.1 查找 '/' 所在位置(第一思路) 2.2 利用python中分数表达Fraction函数 2.2.1 Fraction函数介绍 2.2.2 解题 2.3 类 ...
- leetcode 592. Fraction Addition and Subtraction | 592. 分数加减运算(最大公因数gcd,最小公倍数lcm)
题目 https://leetcode.com/problems/fraction-addition-and-subtraction/ 题解 这题既简单又麻烦,一道 hard 的 easy 题,被划分 ...
- JAVA程序设计:分数加减运算(LeetCode:592)
给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母为 1.所以 ...
- LeetCode中等题之分数加减运算
题目 给定一个表示分数加减运算的字符串 expression ,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数 ...
- 【数据结构与算法】之深入解析“分数加减运算”的求解思路与算法示例
一.题目要求 给定一个表示分数加减运算的字符串 expression,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换 ...
最新文章
- Spring Cloud下微服务权限方案
- 大数据分析与可视化报告会成功召开(附PPT下载)
- 基于Ajax的Web框架Echo2 2.0发布
- 《系统集成项目管理工程师》必背100个知识点-25变更请求
- 送出orkut邀请,当然如果需要gmail邀请,还有很多
- centos7 xampp启动mysql数据库_mysql主从配置,用win xampp和centos7环境下测试
- [react] 在react中页面重新加载时怎样保留数据?
- vue-cli+webpack项目,修改项目名称
- JDK源码(1)-阅读指引
- appium+python自动化-adb shell模拟点击事件(input tap)
- 第五章 事务 视图 索引 备份和恢复
- 前几日共享HCIE面试战报兄弟的通过感言,看完之后希望你不要沉默
- 我的HTC G16 CHACHA A810e版手机如何解锁和一键root的
- CDR 网状填充高级图形
- mac软件推荐及chrome插件推荐
- 2022世界杯不扩军!国足教练:机会来了
- 新娘JAVA_java新郎新娘结婚的问题
- java word根据标识符替换图片,文字(亲测)
- 线程的启动暂停和终止
- 时间复杂度的规则与计算