Lật ngược dấu ngoặc (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho xâu s chỉ bao gồm dấu đóng mở ngoặc, hãy tìm số lượng dấu ngoặc tối thiểu cần phải đối chiều để tạo thành một xâu hợp lệ.


Định dạng đầu vào: Dòng duy nhất chứa xâu S


Ràng buộc: Xâu S có độ dài là số chẵn và có không quá 1000 kí tự


Định dạng đầu ra: In ra số lượng dấu ngoặc cần phải đối chiều


Input 01:
)))())()()
Output 01:
2
Input 02:
((((((
Output 02:
3
Input 03:
(((((()))())()()
Output 03:
1
Input 04:
)))())()()((((
Output 04:
4

Dư thừa dấu ngoặc (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một biểu thức số học đúng nhưng có thể dư thừa dấu ngoặc, nhiệm vụ của bạn là kiểm tra xem biểu thức này có dư thừa dấu đóng mở ngoặc hay không.


Định dạng đầu vào: Dòng duy nhất chứa biểu thức cần kiểm tra


Ràng buộc: Biếu thức chỉ chứa kí tự đóng mở ngoặc, các chữ cái in thường và các phép toán + -* / không quá 100 kí tự


Định dạng đầu ra: In ra YES nếu biểu thức dư thừa dấu ngoặc, ngược lại in ra NO


Input:
((x+y))
Output:
YES

Xóa ký tự liền kề giống nhau 2 (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu kí tự S chỉ bao gồm kí tự in thường, nhiệm vụ của bạn là xóa k kí tự liền kề giống nhau khỏi xâu S. Ví dụ xâu aaabbbcccedddeeu sau khi xóa 3 kí tự liền kề giống nhau khỏi xâu S sẽ trở thành xâu u


Định dạng đầu vào: Dòng 1 chứa xâu kí tự S; Dòng 2 chứa số nguyên dương k


Ràng buộc: 1<=len(S)<=10000; 2<=K<=len(S);


Định dạng đầu ra: In ra xâu S sau khi xóa, in ra EMPTY nếu S trở thành xâu rỗng


Input 01:
aabbccedde
2
Output 01:
EMPTY
Input 02:
aaaccddda
3
Output 02:
cca
Input 03:
aaabbbcccedddeeu
3
Output 03:
u

Xóa ký tự liền kề giống nhau 1 (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu kí tự S chỉ bao gồm kí tự in thường, nhiệm vụ của bạn là xóa các kí tự liền kề giống nhau khỏi xâu S. Ví dụ xâu aabbccc sau khi xóa các kí tự liền kê sẽ thành c, xâu abba sau khi xóa các kí tự liền kề sẽ thành xâu rỗng.


Định dạng đầu vào: Dòng duy nhất chứa xâu kí tự S


Ràng buộc: 1<=len(S)<=10000;


Định dạng đầu ra: In ra xâu S sau khi xóa các kí tự liền kề giống nhau, nếu xâu sau khi xóa rỗng thì in ra EMPTY.


Input 01:
dddbbabcb
Output 01:
dabcb
Input 02:
abba
Output 02:
EMPTY

Thêm dấu ngoặc (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu kí tự chỉ bao gồm dấu đóng mở ngoặc tròn. Hãy tìm số lượng dấu đóng mở ngoặc cần thêm tối thiểu để tạo thành một xâu cân bằng, bạn có thể thêm các kí tự đóng mở ngoặc vào bất kì vị trí nào của xâu.


Định dạng đầu vào: Xâu kí tự S trên 1 dòng


Ràng buộc: 1<=len(S)<=10000;


Định dạng đầu ra: In ra số lượng dấu ngoặc cần bổ sung để xâu cân bằng


Input 01:
))))()
Output 01:
4
Input 02:
(((())))
Output 02:
0

Valid parentheses (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu chỉ bao gồm các ký tự (, ), {, }, [, ]. Hãy xác định xem các dấu ngoặc trong xâu có cân bằng hay không. Một vài ví dụ về xâu cân bằng: ()()(){}()[], ((()))[(())[]{}]


Định dạng đầu vào: Xâu ký tự S trên 1 dòng


Ràng buộc: 1 <= len(s) <= 10000


Định dạng đầu ra: In ra YES hoặc NO nếu xâu ký tự cân băng hoặc không


Input 01:
(((())))
Output 01:
YES
Input 02:
{}{}[]]
Output 02:
NO

Di chuyển dấu ngoặc (ngăn xếp - stack)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu kí tự S chỉ bao gồm các kí tự '(' hoặc kí tự ')'. S có độ dài là số chẵn có giá trị N. Xâu S gồm N / 2 kí tự mở ngoặc và N / 2 kí tự đóng ngoặc. Ở mỗi thao tác các bạn được lựa chọn 1 kí tự bất kì của S đề đưa về vị trí đầu tiên hoặc vị trí cuối cùng của dãy. Các bạn hãy xác định số thao tác tối thiểu cần thực hiện để tạo được 1 xâu dấu ngoặc hợp lệ. Một số ví dụ về xâu hợp lệ : (); (((())));...


Đầu vào: Một dòng duy nhất chứa xâu S


Ràng buộc: 1<=N<=1000


Đầu ra: in ra số thao tác tối thiểu cần thực hiện

Input:
))(((())
Output:
2