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.