Я пытаюсь проверить, сбалансирована ли строка скобок. Я пытаюсь использовать векторы в C ++ для того же. Выходными данными должен быть размер вектора, и если размер равен 0, строка сбалансирована, а если нет, она не сбалансирована. Однако я получаю пустой вывод для кода ниже.
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int j;
vector<char>a;
for(int i=0;i<s.length();i+=1){
a.push_back(s[i]);
}
for(int i=0;i<a.size();i+=1){
if (a[i]=='(') {
j=i;
while(a[j]!=')')
j+=1;
} else if(a[j]==')') {
a.erase(a.begin()+i);
a.erase(a.begin()+j);
}
}
}
cout<<a.size();
return 0;
}
Я ожидаю, что вывод будет число элементов в строке, кроме скобок. Однако я не получаю вывод для этой программы. Я подозреваю, что проблема с функцией стирания вектора.