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. 分数加减运算相关推荐

  1. Leetcode 592. 分数加减运算 C++

    Leetcode 592. 分数加减运算 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 ...

  2. LeetCode 592. 分数加减运算(字符串+最大公约数)

    1. 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母 ...

  3. 图解LeetCode——592. 分数加减运算(难度:中等)

    一.题目 给定一个表示分数加减运算的字符串 expression,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即:最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成 ...

  4. 592.分数加减运算 纯纯的数学题,Python 7行代码+详细思路分享!

    592.分数加减运算 https://leetcode.cn/problems/fraction-addition-and-subtraction/solution/by-qingfengpython ...

  5. LeetCode 0592. 分数加减运算:手把手分步のC++讲解

    [LetMeFly]592.分数加减运算:手把手分步のC++讲解 力扣题目链接:https://leetcode.cn/problems/fraction-addition-and-subtracti ...

  6. 【leetcode】592.分数加减运算(python)

    目录 一.题目描述 二.解题思路 2.1 查找 '/' 所在位置(第一思路) 2.2 利用python中分数表达Fraction函数 2.2.1 Fraction函数介绍 2.2.2 解题 2.3 类 ...

  7. leetcode 592. Fraction Addition and Subtraction | 592. 分数加减运算(最大公因数gcd,最小公倍数lcm)

    题目 https://leetcode.com/problems/fraction-addition-and-subtraction/ 题解 这题既简单又麻烦,一道 hard 的 easy 题,被划分 ...

  8. JAVA程序设计:分数加减运算(LeetCode:592)

    给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母为 1.所以 ...

  9. LeetCode中等题之分数加减运算

    题目 给定一个表示分数加减运算的字符串 expression ,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数 ...

  10. 【数据结构与算法】之深入解析“分数加减运算”的求解思路与算法示例

    一.题目要求 给定一个表示分数加减运算的字符串 expression,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换 ...

最新文章

  1. Spring Cloud下微服务权限方案
  2. 大数据分析与可视化报告会成功召开(附PPT下载)
  3. 基于Ajax的Web框架Echo2 2.0发布
  4. 《系统集成项目管理工程师》必背100个知识点-25变更请求
  5. 送出orkut邀请,当然如果需要gmail邀请,还有很多
  6. centos7 xampp启动mysql数据库_mysql主从配置,用win xampp和centos7环境下测试
  7. [react] 在react中页面重新加载时怎样保留数据?
  8. vue-cli+webpack项目,修改项目名称
  9. JDK源码(1)-阅读指引
  10. appium+python自动化-adb shell模拟点击事件(input tap)
  11. 第五章 事务 视图 索引 备份和恢复
  12. 前几日共享HCIE面试战报兄弟的通过感言,看完之后希望你不要沉默
  13. 我的HTC G16 CHACHA A810e版手机如何解锁和一键root的
  14. CDR 网状填充高级图形
  15. mac软件推荐及chrome插件推荐
  16. 2022世界杯不扩军!国足教练:机会来了
  17. 新娘JAVA_java新郎新娘结婚的问题
  18. java word根据标识符替换图片,文字(亲测)
  19. 线程的启动暂停和终止
  20. 时间复杂度的规则与计算

热门文章

  1. matlab光学原理仿真应用衍射,光学衍射仿真实验系统
  2. 三角测量计算三维坐标的代码_BIM+GIS——无人机倾斜摄影三维建模方法详解
  3. reimage repair-打开网页总是自动跳转要你下reimage repair
  4. reimage许可证密钥_2019年7月24日,绝对真实的许可证密钥
  5. MPLAB PICKIT3、MPLAB SIM调试
  6. 将cpp文件封装成 so 文件并调用
  7. Typecho独立下载插件安装与使用
  8. css单行、多行文本溢出显示省略号
  9. 文档损坏了怎么修复?文档修复方法分享
  10. Pdf之C#直接打印pdf文件