幸运字符串(ansistring)
幸运字符串(string)
【问题描述】
对于一个只包含0和1的字符串,如果A是幸运的,B也是幸运的,那么1AB1也是一个幸运的串。现在定义”0”是一个幸运字符串,请判断给定的字符串S是否是幸运的。
【输入格式】
第一行一个数字T,表示数据组数。www.zzzyk.com
接下来T组数据,第一行字符串长度n,接下来一行一个只含01的字符串。
【输出格式】
T行,第i个串如果是幸运字符串那么输出”YES”,否则输出”NO”。
【样例输入】
3
4
1001
7
1100101
7
0110011
【样例输出】
YES
YES
NO
【数据范围】
30%的数据满足n<=100;
50%的数据满足n<=300;
100%的数据满足n<=800,T<=10
未1A的原因,又没改ansistring
[delphi]
//string
var
n,tt,i,j,now:longint;
s:ansistring;
function sort(i,j:longint):boolean;
var
k:longint;
begin
if (i=j) then
begin
if s[i]='0' then exit(true)
else exit(false);
end;
{
if (s[i]='1') and (s[j]='1') then
begin
for k:=i+1 to j-2 do
if (sort(i+1,k)) and (sort(k+1,j-1)) then exit(true);
end;
}
exit(false);
end;
begin
assign(input,'string.in');
assign(output,'string.out');
reset(input);
rewrite(output);
readln(tt);
while (tt>0) do
begin
readln(n);
readln(s);
while (true) do
begin
i:=pos('1001',s);
if (i=0) then break;
delete(s,i,2);
delete(s,i+1,1);
dec(n,3);
end;
if (sort(1,n)) then writeln('YES')
else writeln('NO');
dec(tt);
end;
close(input);
close(output);
end.
补充:综合编程 , 其他综合 ,