Java每日练习之求解方程

这个题是力扣上面的——640. 求解方程;题不难,写上来是因为很麻烦,调了很久,总要留做一个纪念~~~
题目描述:
求解一个给定的方程,将x以字符串"x=#value"的形式返回。该方程仅包含’+’,’ - '操作,变量 x 和其对应系数。
如果方程没有解,请返回“No solution”。
如果方程有无限解,则返回“Infinite solutions”。
如果方程中只有一个解,要保证返回值 x 是一个整数。
示例 1:
输入: “x+5-3+x=6+x-2”
输出: “x=2”
示例 2:
输入: “x=x”
输出: “Infinite solutions”
示例 3:
输入: “2x=x”
输出: “x=0”
示例 4:
输入: “2x+3x-6x=x+2”
输出: “x=-1”
示例 5:
输入: “x=x+2”
输出: “No solution”

解题思路:
(1)进行替换String e = equation.replace("-x","-1x").replace("-",“±”);
(2)用等号进行分割,左右
(3)左右分别用String [] ls=left.split("\+");
(4)分别找到左右的x系数和常数的系数,最后进行处理即可。
注:记得转义字符

代码实现:

class Solution {
    public static String solveEquation(String equation) {
		String e = equation.replace("-x","-1x").replace("-","+-");//.replace("x","1x");
		String [] ss=e.split("=");
		String left=ss[0];
		String right=ss[1];
		long xiShuz=0;
		long sumz=0;
		//System.out.println(left);
		//System.out.println(right);
		String [] ls=left.split("\\+");
		//System.out.println(Arrays.toString(ls));
		for(int i=0;i

你可能感兴趣的:(力扣题型)