các bạn sửa hộ mình code với. cám ơn các bạn nhiều
đề bài xây dựng ngăn xếp các kí tự nhập một chuỗi các kí tự và kiểm tra xem chuỗi có khớp với dấu ngoặc đơn không ? vd: abc(de)f là khớp còn )( là ko khớp:
#include <iostream>
#include <stack>
#include <string.h>
using namespace std;
class kiemtrangoacdon
{
private :
stack<int>A;
public :
void push(string S) //Day cac dau ngoac don vao stack
{
for (int i=0;i<S.length();i++)
{
if (S[i]=='(')
A.push(i);
else if (S[i]==')')
{
if (!A.empty())//Ki?m tra xem stack có r?ng không.
A.pop();
else
A.push(i);
}
}
}
int kiemtra()
{ //kiem tra co dung quy tac khong
if (A.empty())
return 1;
else
return 0;
}
void vitri()
{ //tra ve vi tri neu khong dung quy tac
while (!A.empty())
{
cout<<"o vi tri : "<<A.top()+1<<"\n";
A.pop();
}
}
};
int main()
{
int a;
stack<int>A;
kiemtrangoacdon P;
string S; //khai bao xau
cout<<"Nhap chuoi :";
getline(cin,S); //Nhap xau
P.push(S);
a=P.kiemtra();
if(a==1)
cout<<"Dung quy tac!\n";
else
{
cout<<"Khong dung quy tac!\n";
P.vitri();
}
getch();
return 0;
};