日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode 640. Solve the Equation | 640. 求解方程(字符串处理)

發(fā)布時間:2024/2/28 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 640. Solve the Equation | 640. 求解方程(字符串处理) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目

https://leetcode.com/problems/solve-the-equation/

題解

本題重點在字符串的處理。

先用 tokenize 函數(shù),整理出每一項,用 X 表示,記錄每一項的系數(shù)以及是否含有變量x。
然后我們希望把整個式子化為 Ax=b 的形式。
最后,只要計算 x=b/A 即可。

tricks:為了方便處理首尾,我們定義了一個 format 函數(shù),讓每一個數(shù)字前面都統(tǒng)一含有 + / - 號,每一個數(shù)字的后面也都統(tǒng)一含有 + / - 號。

class X {int c = 1; // 系數(shù)boolean x = false; // 是否含x }class Solution {public String solveEquation(String equation) {// tokenizeArrayList<X> tokens = new ArrayList<>();String left = format(equation.split("=")[0]);String right = format(equation.split("=")[1]);tokens.addAll(tokenize(left, 1));tokens.addAll(tokenize(right, -1));// calc coefficientint cx = 0;// x的系數(shù)int cc = 0;// c的系數(shù)for (X x : tokens) {if (x.x) cx += x.c;else cc += x.c;}// solveif (cc == 0 && cx == 0) return "Infinite solutions";else if (cx == 0) return "No solution";else return "x=" + (-cc / cx);}public String format(String s) {if (s.charAt(0) != '-' && s.charAt(0) != '+') s = "+" + s;return s + "+";}public List<X> tokenize(String exp, int turn) {int pre = 0;List<X> tokens = new ArrayList<>();for (int i = 1; i < exp.length(); i++) {if (exp.charAt(i) == '+' || exp.charAt(i) == '-') { // 結(jié)算(解析)上一項String s = exp.substring(pre, i);X x = new X();// 符號正負int sn;if (s.charAt(0) == '-') {sn = turn * (-1);} else {sn = turn;}s = s.substring(1);// 是否含xif (s.charAt(s.length() - 1) == 'x') {x.x = true;s = s.substring(0, s.length() - 1);}// 系數(shù)if (s.length() > 0) {x.c = sn * Integer.parseInt(s);} else {x.c = sn;}pre = i;tokens.add(x);}}return tokens;} }

總結(jié)

以上是生活随笔為你收集整理的leetcode 640. Solve the Equation | 640. 求解方程(字符串处理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。