失われたかっこ


#include <iostream>
#include <string>
using namespace std;

int num = 0;
int flag = 0;
int m = 0;
string tmp = "";
string s;

void solve()
{
	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] == '+' || s[i] == '-' ||i==(s.size()-1))
		{
			if (i == s.size() - 1)
			{
				tmp += s[i];//문자열 합치기
			}

			if (flag)//이상황은 이전문자열에서 -한번나왔을때 
			{
				num -= stoi(tmp);
				tmp = "";
			}
			else
			{
				num += stoi(tmp);
				tmp = "";
			}

			if (s[i] == '-')
			{
				flag = 1;
			}
		}
		else	//
		{
			tmp += s[i];//문자열 합치기
		}
	}
}

int main(int argc, char* argv[])
{
	cin >> s;

	solve();

	cout << num << endl;

	return 0;
}
まず基本的に.
1.string tmpによる文字列全体の特定部分のマージ
2]+または-適用される場合はflag変数を使用します.
flagが1の場合は削除し、0の場合は追加します.
3.演算子が連続して現れていない場合、一番前の数字を除いて、すべてやった場合、最小値の内容が現れます.
すなわち,else文は1回のみ入る(1回目)
文字列処理を受信と、
すべての複文を回してください.
特定の条件ではない場合.
string stemp += s[i]; 作ってくれると同時に、
条件を満たすとstemp="";初期化作業を行います.」