1. 给一串字符串,例如"a(bcbd){}";,判断(){}[]是否合法,‘({)}’是非法的, ‘({}){}’合法的。
// check.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <stack>
using namespace std;
bool check2(string str) {
stack<char> cont;
for (int i = 0; i < str.length(); i++) {
if (str[i] == '(' || str[i] == '{' || str[i] == ']') {
cont.push(str[i]);
continue;
}
if (str[i] == ')') {
if (cont.top() == '(')
cont.pop();
else
return false;
continue;
}
if (str[i] == '}') {
if (cont.top() == '{')
cont.pop();
else
return false;
continue;
}
if (str[i] == ']') {
if (cont.top() == '[')
cont.pop();
else
return false;
continue;
}
}
if (cont.size() != 0)
return false;
else
return true;
}
int main()
{
string str = "(){}";
bool res = false;
res = check2(str);
if (res) {
cout << "合法";
}
else {
cout << "非法";
}
return 0;
}