分数加法和减法

分数加法和减法

592。分数加法和减法

难度:中等

主题:数学、字符串、模拟

给定一个表示分数加减表达式的字符串表达式,以字符串格式返回计算结果。

最终结果应该是一个不可约分数。如果您的最终结果 是整数,请将其更改为分母为 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”

限制:

输入字符串仅包含’0’到’9’、’/’、’+’和’-‘。输出也是如此。每个分数(输入和输出)的格式为±分子/分母。如果第一个输入分数或输出为正,则将省略 ‘+’。输入仅包含有效的不可约分数,其中每个分数的分子分母将始终在[1, 10]范围内。如果分母为 1,则意味着该分数实际上是上面定义的分数格式的整数。给定分数的数量将在 [1, 10] 范围内。最终结果的分子和分母保证有效并且在32位int范围内。

解决方案:

我们需要仔细解析输入字符串并对分数进行算术运算。步骤如下:

解析输入表达式:从表达式字符串中提取各个分数。计算结果:逐步添加或减去分数。简化结果:将最终分数转换为其不可约形式。让我们用 php 实现这个解决方案:

592。分数加法和减法


解释:

gcd 函数:计算两个数字的最大公约数,这有助于简化分数。addfractions 函数:两个分数相加。它计算公分母,相应地调整分子,将它们相加,然后简化所得分数。fractionaddition 函数:这是解析输入表达式的主函数,使用正则表达式提取所有分数,并使用 addfractions 函数迭代地将它们相加。 测试用例:

fractionaddition(“-1/2+1/2”) 返回 “0/1”.fractionaddition(“-1/2+1/2+1/3”) 返回 “1/3”.fractionaddition(“1/3-1/2”) 返回 “-1/6”.此解决方案处理所有必需的操作,并为每个给定表达式返回正确的输出。

联系链接

如果您发现本系列有帮助,请考虑在 github 上给

存储库 一颗星,或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!

如果您想要更多类似的有用内容,请随时关注我:

领英github

以上就是分数加法和减法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1245411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 17:43:07
下一篇 2025年12月9日 17:43:18

相关推荐

  • “备份表”包

    轻松备份单个或多个数据库表。 通过添加 BackupTables::generateBackup(‘users’) 就可以了。 如果您想要`BackupTables::generateBackup([User::class, Post::class]),您还可以备份多个表 B…

    2025年12月9日
    000
  • 找到最近的回文

    564。找到最近的回文 难度: 难 主题:数学、字符串 给定一个表示整数的字符串 n,返回_最接近的整数(不包括其自身),这是一个回文-。如果有平局,则返回较小的。 最接近的定义为两个整数之间的绝对差最小化。 示例1: 输入: n = “123”输出:“121” 示例2: 输…

    2025年12月9日
    000
  • PHP 属性挂钩

    介绍 php 8.4 将于 2024 年 11 月发布,并将带来一个很酷的新功能:属性挂钩。 在本文中,我们将了解什么是属性挂钩以及如何在 php 8.4 项目中使用它们。 顺便说一句,您可能还有兴趣查看我的另一篇文章,其中向您展示了 php 8.4 中添加的新数组函数。 什么是 php 属性挂钩?…

    2025年12月9日
    000
  • Novaxis:一种基于 PHP 的配置编程语言

    novaxis 是完全开源的,开发编程语言需要 llvm、ast 和一些工具的经验,但是使用 novaxis,您可以开发它并添加功能或阅读它,而无需任何这些经验。 尽管 PHP 主要是为 Web 开发而设计的,但它在 Novaxis 语言的开发中却取得了令人惊讶的成果。与其他配置语言相比,Novax…

    2025年12月9日
    000
  • LaratineAdmin – 一个简单的 Laravel/InertaReact 仪表板

    laratineadmin 是一个灵活的管理仪表板,使用 laravel 11、inertia、react 和 mantine ui 组件构建。该解决方案为希望通过管理界面快速启动 laravel 应用程序的开发人员提供了坚实的基础。 演示网址:http://laratine.diggitto.co…

    2025年12月9日 好文分享
    300
  • 数补码

    476。数补码 难度:简单 主题: 位操作 整数的补码是将其二进制表示形式中的所有 0 翻转为 1 以及将所有 1 翻转为 0 时得到的整数。 例如,整数5的二进制是“101”,它的补码是“010”,即整数2。 给定一个整数 num,返回 其补码. 示例1: 输入: num = 5输出: 2说明: …

    2025年12月9日
    000
  • PHP 函数如何与 Go 交互?

    PHP 函数如何与 Go 交互 PHP 和 Go 是两种截然不同的编程语言,具有不同的语法和特性。然而,在某些情况下,您可能需要在 PHP 应用程序和 Go 服务之间进行交互。 方法 1:使用 HTTP 请求 您可以使用标准 HTTP 请求在 PHP 和 Go 之间发送数据。 立即学习“PHP免费学…

    2025年12月9日
    000
  • 如何对 PHP 函数进行版本控制?

    如何对 PHP 函数进行版本控制? 版本控制是管理和跟踪源代码更改的过程。对于 PHP 函数,使用版本控制系统可以轻松地回滚到以前的版本、管理协作开发并存档历史更改。 本文将介绍如何使用 Git 对 PHP 函数进行版本控制,并提供一个实战案例。 实战案例:版本控制一个 PHP 问候函数 立即学习“…

    2025年12月9日
    000
  • 奇怪的打印机

    664。奇怪的打印机 难度: 难 主题: 字符串、动态规划 有一种奇怪的打印机,具有以下两个特殊属性: 打印机每次只能打印一系列相同的字符。打印机每次都可以打印从任意位置开始和结束的新字符,并且会覆盖原来存在的字符。 给定一个字符串 s,返回打印机打印它所需的最小转数. 示例1: 输入: s = &…

    2025年12月9日
    000
  • 石头游戏II

    1140。石头游戏ii 难度:中等 主题: 数组、数学、动态规划、前缀和、博弈论 爱丽丝和鲍勃继续玩石头堆游戏。 有许多堆排成一排,每堆有正整数个石子piles[i]。 游戏的目标是以最多的石子结束。 爱丽丝和鲍勃轮流,爱丽丝先开始。 最初,m = 1. 在每个玩家的回合中,该玩家可以拿走第一个剩余…

    2025年12月9日
    000
  • 如何编写一个容错的 PHP 函数

    编写容错的 php 函数需要明确的参数验证、输入过滤和资源管理。通过错误处理机制(try…catch 块、set_error_handler、error_reporting)捕获异常,并使用 ctype_digit() 验证参数,使用 htmlspecialchars() 和 strip…

    2025年12月9日
    000
  • 眼睛键盘

    650。 2键键盘 难度:中等 主题:数学,动态规划 记事本的屏幕上只有一个字符“a”。每一步您都可以在此记事本上执行以下两个操作之一: 全部复制:您可以复制屏幕上出现的所有字符(不允许部分复制)。粘贴:可以粘贴上次复制的字符。 给定一个整数n,返回在屏幕上精确出现n次字符“a”的最少操作次数. 示…

    2025年12月9日
    000
  • 引入灵活且与框架无关的 Laravel Livewire Modal 包

    引入灵活的 laravel livewire 模态包 laravel 和 livewire 彻底改变了我们用最少的 javascript 构建动态应用程序的方式。但在处理模态时,大多数解决方案往往将我们锁定在特定的设计框架中,例如 bootstrap 或 tailwind css。如果您需要灵活地选…

    2025年12月9日
    000
  • 最大点数与成本

    1937 年。最大积分数量与成本 难度:中等 主题: 数组、动态规划 给你一个 m x n 整数矩阵点(0 索引)。从 0 点开始,您希望最大化可以从矩阵中获得的点数。 要获得积分,您必须在每一行中选择一个单元格。选择坐标 (r, c) 处的单元格将为您的分数添加 分 [r][c]。 但是,如果您选…

    2025年12月9日
    000
  • 阵列中的最大距离

    624。数组中的最大距离 难度:中等 主题:数组,贪心 给你m个数组,每个数组按照升序. 你可以从两个不同的数组中选取两个整数(每个数组选取一个)并计算距离。我们将两个整数 a 和 b 之间的距离定义为它们的绝对差 |a – b|。 返回最大距离. 示例1: 输入:数组 = [[1,2,…

    2025年12月9日
    000
  • 什么是 PHP?为什么要学习它?

    如果您刚开始涉足 Web 开发领域,您很可能已经听说过 PHP。但 PHP 到底是什么?为什么它被如此广泛地使用?在这篇文章中,我们将探讨 PHP 成为开发人员的热门选择的原因、它的主要应用程序,以及为什么您应该考虑学习这种语言。 什么是 PHP? PHP最初代表“个人主页”,现在被称为“超文本预处…

    2025年12月9日
    000
  • 组合总和 II

    40。组合总和 II 难度:中等 主题: 数组,回溯 给定一组候选数字(candidates)和一个目标数字(target),找到候选数字中所有候选数字总和为目标的唯一组合。 候选中的每个号码在组合中只能使用一次。 注意: 解决方案集不能包含重复的组合。 示例1: 输入: 候选人 = [10,1,2…

    2025年12月9日
    000
  • 查找第 K 个最小对距离

    719。找到第 k 个最小的对距离 难度: 难 主题: 数组、两个指针、二分查找、排序 整数对的距离定义为a和b之间的绝对差。 给定一个整数数组 nums 和一个整数 k,返回所有对 nums[i] 和 nums[j] 中最小的距离,其中 0 . 示例1: 输入: nums = [1,3,1], k…

    2025年12月9日
    000
  • 流中的第 K 个最大元素

    703。流中的第 k 个最大元素 难度:简单 主题: 树、设计、二叉搜索树、堆(优先级队列)、二叉树、数据流 设计一个类来查找流中的第 kth 最大元素。请注意,它是排序顺序中第 kth 最大元素,而不是第 k 不同元素。 实现kthlargest类: kthlargest(int k, int[]…

    2025年12月9日
    000
  • Erath:具有无服务器存储和灵活编辑器的免费静态网页托管

    厌倦了需要登录、占用带宽并让您为复杂的文件上传而苦苦挣扎的笨重网络托管平台? Erath 来改变游戏规则。 Erath 提供终身免费静态网页托管,以及无服务器存储和用户友好的编辑器,使其成为任何希望快速轻松部署静态网站的人的完美解决方案。 这就是 Erath 脱颖而出的原因: 免费静态网页托管:不再…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信