解决方案


方法一:分数类

思路

因为给定的两个数字都表示一个分数,所以我们需要一个分数类去处理这两个分数。它应该能帮助我们将两个分数加起来,并且保证答案为最简形式。

算法

我们需要理解给定的两个分数,最困难的问题是如何表示它们。

比如说我们有一个字符串 S = "0.(12)"。它代表(定义 ):

其中 是一个等比数列求和问题。

总而言之,对于长度为 的重复部分 ,会对答案有 的贡献,其中

另外两部分就更容易计算了,因为它们仅仅是对数值的简单翻译。

复杂度分析

  • 时间复杂度:,因为字符串 的长度可以看作是 级别的。

  • 空间复杂度: