外星密碼

外星密碼

COGS 1239spa

AYYZOJ 1916code

字符串 模擬 有棧的思想blog

不過我寫完沒有想到棧字符串

通過嘗試以後應該是由內向外逐層擴展(不動腦子!)get

 1 var
 2  s,plus,plu:ansistring;  3  i,sl,sr:longint;  4 procedure get(var x,y,num:longint);  5 var i,k:longint;  6  nu:ansistring;  7 begin
 8   for i:=1 to length(s) do
 9    if s[i]='[' then x:=i; 10   for i:=1 to length(s) do
11    if (s[i]=']') and (i>x) then begin y:=i; break; end; 12   nu:=''; 13   i:=x+1; 14   k:=ord(s[i])-ord('0'); 15   while k in [0..9] do
16    begin
17      nu:=nu+s[i]; 18  inc(i); 19      k:=ord(s[i])-ord('0'); 20    end; 21  val(nu,num); 22 end; 23 procedure doit(var s:ansistring); 24 var num,i,di:longint; 25 begin
26   plus:=''; 27  get(sl,sr,num); 28   di:=num div 10; 29   if di<>0 then
30    plu:=copy(s,sl+3,sr-sl-3) 31   else plu:=copy(s,sl+2,sr-sl-2); 32   for i:=1 to num-1 do
33     plus:=plus+plu; 34   delete(s,sr,1); 35   if di<>0 then
36    delete(s,sl,3) 37   else delete(s,sl,2); 38  insert(plus,s,sl); 39 end; 40 begin
41 assign(input,'passworda.in'); 42 reset(input); 43 assign(output,'passworda.out'); 44 rewrite(output); 45  readln(s); 46   while pos('[',s)<>0 do
47  doit(s); 48  writeln(s); 49 close(input); 50 close(output); 51 end.
相關文章
相關標籤/搜索