思路分析
这道题的题目较之前有了一些减短,不过还是一样的有些麻烦。基本思路就是检验方程式两边的元素是否已经配平,所以去找元素和其对应的个数就可以了,接下来就是程序设计问题了。
代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <stack>
using namespace std;
map<string, int> buff;
struct node {
string c;
int n;
node(string cc, int nn) {
c = cc, n = nn;
}
};
//这里是从后向前找的,因为这样统计元素个数比较方便
void mysplit(string x, int sign) {
int pre = 1, k = 0;
if (isdigit(x[k])) {
pre = 0;
while (isdigit(x[k])) {
pre = pre * 10 + x[k] - 48;
++k;
}
}
string element = "";
stack