給定一個(gè)如下輸入格式的字符串(1,(2,3),(4,(5,6),7))括號(hào)內(nèi)的元素可以是數(shù)字,也可以是另一個(gè)括號(hào),請(qǐng)實(shí)現(xiàn)一個(gè)算法消除嵌套的括號(hào),比如把上面的表達(dá)式變成:(1,2,3,4,5,6,7),如果表達(dá)式有誤請(qǐng)報(bào)錯(cuò)。
#include <string>
using namespace std;
string ElimenateBracket(const string &str){
int counter = 0;
string result;
for(int i = 0; i < str.size(); ++i){
if(str[i] == '('){
++counter;
}
else if(str[i] == ')'){
--counter;
if(counter < 0){
result.clear();
return result;
}
}
else{
result.push_back(str[i]);
}
}
if(counter != 0){
result.clear();
return result;
}
result.insert(result.begin(), '(');
result.push_back(')');
return result;
}
int main(){
string str("(1,(2,3),(4,(5,6),7))");
string m = ElimenateBracket(str);
return 0;
}