2
public int[] simplifyEqn(String eqn) {6
for (int i = 0; i < eqn.length(); ) {9
while (j < eqn.length() && Character.isDigit(eqn.charAt(j))) {10
coEff = coEff * 10 + (eqn.charAt(j) - '0');13
if (j < eqn.length() && eqn.charAt(j) == 'x') {14
if (i == j) coEff = 1;15
sumX += prevSign * coEff;18
sumNums += prevSign * coEff;20
if (j < eqn.length() && eqn.charAt(j) == '+') prevSign = 1;21
else if (j < eqn.length() && eqn.charAt(j) == '-') prevSign = -1;24
return new int[] {sumX, sumNums};27
public String solveEquation(String equation) {28
String[] leftNRight = equation.split("=");29
String left = leftNRight[0], right = leftNRight[1];30
int[] leftEqn = simplifyEqn(left);31
int[] rightEqn = simplifyEqn(right);32
int x = leftEqn[0] - rightEqn[0];33
int num = rightEqn[1] - leftEqn[1];35
if (num == 0) return "Infinite solutions";36
else return "No solution";37
return "x=" + num / x;