内容目录
幸运字符串(string)
【问题描述】
对于一个只包含0和1的字符串,如果A是幸运的,B也是幸运的,那么1AB1也是一个幸运的串。现在定义”0”是一个幸运字符串,请判断给定的字符串S是否是幸运的。
【输入格式】
第一行一个数字T,表示数据组数。
接下来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
//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.