public class Solution {
public int gcd (int x, int y) {
return y == 0 ? Math.abs(x) : gcd(y, x % y); // "1/3-1/2" => "-1/6", otherwise "1/-6"
}
public String fractionAddition(String expression) {
Scanner sc = new Scanner(expression).useDelimiter("/|(?=[+-])");
int numerator = 0, denominator = 1;
while(sc.hasNext()) {
int a = sc.nextInt(), b = sc.nextInt();
numerator = numerator * b + denominator * a;
denominator *= b;
int g = gcd(denominator, numerator);
numerator /= g;
denominator /= g;
}
return numerator + "/" + denominator;
}
}