Xét xâu S chỉ bao gồm các kí tự ngoặc mở ‘(‘ và ngoặc đóng ‘)’. Xâu S xác định một cách đặt ngoặc đúng, nếu thỏa mãn các điều kiện:
· Tổng số ngoặc đóng = tổng số ngoặc mở
· Đi từ trái qua phải, ở bất cứ vị trí nào số đóng phải nhỏ hơn hoặc bằng số ngoặc mở
Yêu cầu: cho biết một xâu s có là một cách đặt ngoặc đúng không?
Input
· Dòng dầu là số test t (0 < t < 100)
· t dòng sau, mỗi dòng 1 xâu s không quá 200 kí tự.
Output: t dòng, mỗi dòng là kết quả 1 test tương ứng, xuất “YES” nếu cách đặt ngoặc đúng, ngược lại xuất “NO”
Input
5
(())
()()
(((())
))((
(()))(()
Output
YES
YES
NO
NO
NO
Uses crt;
Trả lờiXóaVar n,n2,i,j:longint;
s:string;
function test(s:string):string;
Begin
n:=0;
For i:=1 to length(s) do
Begin
If s[i]='(' then n:=n+1 else n:=n-1;
If n<0 then exit('No');
end;
If n=0 then exit('Yes') else exit('No');
end;
Begin
readln(n2);
For j:=1 to n2 do
Begin
readln(s);
Writeln('---',test(s),'---');
end;
readln;
end.
Bài bạn làm chưa đúng bạn hãy thử chạy vd này
Xóainp
)(
out
No
Còn nếu bạn chạy ra yes thì bài bạn sai
program p;
Trả lờiXóauses crt;
var s:string;
i,n:longint;
function kq(s:string):string;
var t,i:integer;
begin
t:=0;
begin
for i:=1 to length(s) do
if s[i]='(' then t:=t+1 else t:=t-1;
end;
if t=0 then exit('yes') else exit('no');
end;
begin
clrscr;
readln(n);
for i:=1 to n do
begin
readln(s);
writeln(kq(s));
end;
readln;
end.