zoukankan      html  css  js  c++  java
  • 外星密码

    外星密码

    COGS 1239

    AYYZOJ 1916

    字符串 模拟 有栈的思想

    不过我写完没有想到栈

    经过尝试之后应该是由内向外逐层扩展(不动脑子!)

     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.
  • 相关阅读:
    7、猜年龄
    6、continue语句
    5、break语句
    4、while循环练习
    poj 2378
    poj 2342
    poj 2287
    poj 2228
    poj 1191
    srm 578 dv2 1000pt
  • 原文地址:https://www.cnblogs.com/vacation/p/6075630.html
Copyright © 2011-2022 走看看