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

示例 1:

输入:"-1/2+1/2"
输出: "0/1"

 示例 2:

输入:"-1/2+1/2+1/3"
输出: "1/3"

示例 3:

输入:"1/3-1/2"
输出: "-1/6"

示例 4:

输入:"5/3+1/3"
输出: "2/1"

说明:

  1. 输入和输出字符串只包含 '0' 到 '9' 的数字,以及 '/''+' 和 '-'
  2. 输入和输出分数格式均为 ±分子/分母。如果输入的第一个分数或者输出的分数是正数,则 '+' 会被省略掉。
  3. 输入只包含合法的最简分数,每个分数的分子分母的范围是  [1,10]。 如果分母是1,意味着这个分数实际上是一个整数。
  4. 输入的分数个数范围是 [1,10]。
  5. 最终结果的分子与分母保证是 32 位整数范围内的有效整数。

class Solution {
public:
    string fractionAddition(string expression) {
        istringstream is(expression);
        int num = 0, dem = 0, A = 0, B = 1; 
        char c;
        while (is >> num >> c >> dem) {
            A = A * dem + num * B;
            B *= dem;
            int g = abs(gcd(A, B));
            A /= g;
            B /= g;
        }
        return to_string(A) + "/" + to_string(B);
    }
    int gcd(int a, int b) {
        return (b == 0) ? a : gcd(b, a % b);
    }
};

592. 分数加减运算相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 分数加减运算(java实现)leecode网题目

    input:-1/2+1/2+1/3 out:1/3package 每日算法题;import java.util.Arrays;public class 分数加减运算 {public String f ...

最新文章

  1. 惊呆了,Spring Boot居然这么耗内存!
  2. 【c语言】蓝桥杯算法提高 c++_ch02_03
  3. Mysql生产指定时间段随机日期函数
  4. 如何确定coordinator
  5. Hadoop(5)-Hive
  6. 【VS开发】【C++语言】reshuffle的容器实现算法random_shuffle()的使用
  7. JDK 8 Javadoc调整了方法列表
  8. Matplotlib——创建散点图
  9. ai圆角插件_【干货满满】AI软件技巧排版所需
  10. 江西瑞金计算机网络设计工资多少,瑞金java工资一般多少
  11. 为什么我比别人差这么多?
  12. C++标准库:bitset 用法整理 (来自网易 happyboy200032的博客)
  13. 特征检测和特征匹配方法汇总
  14. 拓端tecdat|Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
  15. 安卓机顶盒刷机linux,安卓机顶盒刷机 最简单的刷机教程【图文教程】
  16. 计算机特殊社会环境,计算机应用职业生涯规划书
  17. 服务器操作系统 份额,2019年6月全球桌面操作系统市场份额数据:Linux占比1.55%...
  18. Zoomit的简单使用
  19. 程序员的财务自由之路(四)- 选择大于努力
  20. 最长上升子序列(LIS) 学习总结

热门文章

  1. 《编程原本 》一1.8 总结
  2. 转: Eclipse自动提示功能
  3. mongodb之使用explain和hint性能分析和优化
  4. 进展-Silverlight5、 windows phone 7、pc 三栖引擎,2D核心已完成
  5. 看mysql手册中模式(SQL_MODE)学到的知识
  6. [zz]世界第一只计算机bug和Debug
  7. scanf()接受不同类型的参数的一个例子
  8. 鸡兔同笼(一道明显的体现cin和cout运行较慢的特点)
  9. 清理localstorage_清除浏览器localstorage的数据
  10. python3.8安装matplotlib_图文详解python之matplotlib安装与报错解决办法