当前位置:编程学习 > 网站相关 >>

幸运字符串(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. 

 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,