• Java实现 LeetCode 640 求解方程(计算器的加减法计算)


    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"
    

    PS:
    标记一下正负,再用一个指针指到数字的第一位

    class Solution {
          public String solveEquation(String equation) {
            int coff = 0, sum = 0, index = 0, sign = 1;
            int n = equation.length();
    
            for(int i=0;i<n;i++){
                char c = equation.charAt(i);
                if(c == '='){
                    if(index < i){
                        sum += Integer.valueOf(equation.substring(index, i)) * sign;
                    }
                    sign = -1;
                    index = i + 1;
                }else if(c == 'x'){
                    if(index == i || equation.charAt(i - 1) == '+'){
                        coff += sign;
                    }else if(equation.charAt(i - 1) == '-'){
                        coff -= sign;
                    }else{
                        coff += Integer.valueOf(equation.substring(index, i)) * sign;
                    }
                    index = i+1;
                }else if(c == '-' || c == '+'){
                    if(index < i){
                        sum += Integer.valueOf(equation.substring(index, i)) * sign;
                    }
                    index = i;
                }
            }
    
            if(index < n){
                sum += Integer.valueOf(equation.substring(index)) * sign;
            }
    
            if(sum == 0 && coff == 0) return "Infinite solutions";
            if(coff == 0) return "No solution";
            return "x=" + String.valueOf(-sum / coff);
        }
    }
    
  • 相关阅读:
    storm概述
    Mac下python路径
    Frida的安装
    Mac上安装多版本python的手工处理方式
    idea下编写shell脚本并执行
    CTF PWN专用虚拟机
    二叉树输入与存储的问题
    逆向推荐博客(持续更新)
    Kali 爬坑日记
    官宣:从windos服务器迁移到linux
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074857.html
Copyright © 2020-2023  润新知