Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 592. Fraction Addition and Subtraction
題目:

公式:

解答:
class Solution {
public:
string fractionAddition(string expression) {
int i = 0;
int num = 0;
int den = 1;
int n = expression.size();
while (i < n) {
int sign = 1;
char ch = expression[i];
if (ch == '+') {
i += 1;
}
else if (ch == '-') {
sign = -1;
i += 1;
}
int a = 0;
while (isdigit(expression[i])) {
a = a * 10 + (expression[i] - '0');
i += 1;
}
a *= sign;
i += 1;
int b = 0;
while (i < n && isdigit(expression[i])) {
b = b * 10 + (expression[i] - '0');
i += 1;
}
num = num * b + den * a;
den = den * b;
int g = gcd(abs(num), den);
num /= g;
den /= g;
}
return to_string(num) + "/" + to_string(den);
}
};