Given a string expression representing an expression of fraction addition and subtraction, return the calculation result in string format.
The final result should be an irreducible fraction. If your final result is an integer, change it to the format of a fraction that has a denominator 1. So in this case, 2 should be converted to 2/1.
Example 1:
Input: expression = "-1/2+1/2" Output: "0/1"
Example 2:
Input: expression = "-1/2+1/2+1/3" Output: "1/3"
Example 3:
Input: expression = "1/3-1/2" Output: "-1/6"
Constraints:
'0' to '9', '/', '+' and '-'. So does the output.±numerator/denominator. If the first input fraction or the output is positive, then '+' will be omitted.[1, 10]. If the denominator is 1, it means this fraction is actually an integer in a fraction format defined above.[1, 10].This approach involves using the Least Common Multiple (LCM) to find a common denominator for all fractions. Then, add or subtract the numerators accordingly, and finally, simplify the resulting fraction.
We loop through each fraction in the expression, calculate the LCM of the current denominator and the one in the expression, adjust numerators accordingly, and perform the addition or subtraction. Finally, the result is simplified by dividing it by the GCD of the numerator and denominator.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n), where n is the length of the expression.
Space Complexity: O(1), as we only use a fixed amount of additional space for variables.
In this method, we handle each fraction consecutively, updating the numerator and denominator dynamically. This maintains an accumulated result for fractions encountered sequentially.
This solution parses through the expression while employing a dynamic running total, adjusting numerically with current fractions, computing the least common multiple in simultaneous manner.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n) with direct proportionality to length.
Space Complexity: O(1) as with minimum additional memory usage constant.
| Approach | Complexity |
|---|---|
| Using LCM for Common Denominator | Time Complexity: O(n), where n is the length of the expression. |
| Consecutive Fraction Handling | Time Complexity: O(n) with direct proportionality to length. |
Math Antics - Adding and Subtracting Fractions • mathantics • 9,402,353 views views
Watch 9 more video solutions →Practice Fraction Addition and Subtraction with our built-in code editor and test cases.
Practice on FleetCode