⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sexp.pas

📁 ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的
💻 PAS
字号:
var
  f1,f2:text;
  s:string;
  n:integer;

function test(s:string):integer;
var
  x,y,i,j,k,h:integer;
  s1,s2:string;
begin
  if s='' then
    begin
      test:=0;
      exit;
    end;

  if s[1] in['A'..'Z','a'..'z'] then
    begin
      if length(s)=1 then test:=1 else test:=0;
    end else if s[1]='(' then
    begin
      if s[length(s)]=')' then
        begin
          h:=0; k:=0;
          for i:=2 to length(s)-1 do
            begin
              if s[i]='(' then inc(h)
                else if s[i]=')' then dec(h);
              if (h=0)and(s[i]=',')then
                begin
                  k:=i;
                  break;
                end;
            end;
          if k=0 then test:=0 else
            begin
              s1:=copy(s,2,k-2);
              s2:=copy(s,k+1,length(s)-k-1);
              x:=test(s1);
              y:=test(s2);
              if (x=1)and(y=1)then test:=1 else test:=0;
            end;
        end else test:=0;
    end else test:=0;
end;

begin
  assign(f1,'sexp.in');
  assign(f2,'sexp.std');
  reset(f1);rewrite(f2);

  readln(f1,n);
  writeln(f2,n);
  while n>0 do
    begin
      dec(n);
      readln(f1,s);
      while (s<>'')and(s[1]=' ')do delete(s,1,1);
      while (s<>'')and(s[length(s)]=' ') do delete(s,length(s),1);
      if test(s)=1 then writeln(f2,'Yes')
        else writeln(f2,'No');
    end;

  close(f1);close(f2);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -