• 新手村之简单字符串


    前言:根据题意,是简单的字符串。所以只要暴力和模拟,注意细节问题。
    P1055 ISBN号码 代码:

    var
      s:string;
      i,j,n,m,k,l,t:longint;
      v:char;
    begin
      readln(s);
      delete(s,2,1);
      delete(s,5,1);
      delete(s,10,1);
      for i:=1 to 9 do
        t:=(ord(s[i])-48)*i+t;
      case t mod 11 of
        10:v:='X';
        else v:=chr((t mod 11)+48);
      end;
      if s[10]=v then writeln('Right') else
      writeln(s[1],'-',s[2],s[3],s[4],'-',s[5],s[6],s[7],s[8],s[9],'-',v);
    end.

    P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He… 代码;

    var
      s1,s2:string;
      t,i,a,b,l1,l2:longint;
      j:char;
    begin
      readln(s1);
      read(s2);
      a:=1; b:=1;
      l1:=length(s1);
      l2:=length(s2);
      for i:=1 to l1 do
        begin
          t:=1;
          for j:='A' to 'Z' do
            begin
              if s1[i]=j then a:=a*t;
              inc(t);
            end;
        end;
      for i:=1 to l2 do
        begin
          t:=1;
          for j:='A' to 'Z' do
            begin
              if s2[i]=j then b:=b*t;
              inc(t);
            end;
        end;
      if a mod 47=b mod 47 then write('GO')
                           else write('STAY');
    end.

    P1308 统计单词数 代码:

    var
      m,n,s:ansistring;
      i,j,k,l,a,ans,t:longint;
      f:boolean;
    begin
      readln(n);
      readln(m);
      f:=true;
      m:=' '+m+' ';
      for i:=1 to length(n) do
        if n[i]<'a' then
          n[i]:=chr(ord(n[i])+32);
      for i:=1 to length(m) do
        if m[i]=' ' then
          begin
            l:=i;
            for j:=i+1 to length(m) do
              if m[j]=' ' then
                begin
                  a:=j; break;
                end;
            s:=copy(m,l+1,a-l-1);
            for t:=1 to length(s) do
              if s[t]<'a' then
                s[t]:=chr(ord(s[t])+32);
            if n=s then
              begin
                if f=true then
                  begin
                    k:=l; f:=false;
                  end;
                inc(ans);
              end;
          end;
      if ans=0 then write('-1');
      if ans>0 then write(ans,' ',k-1);
    end.

    P1553 数字反转(升级版)代码:
    总;将数字反转做成过程调用。

    var
      ss:string;
      p:longint;
    procedure try1(s:string);
    var
      i,l:longint;
    begin
      if s[1]='-' then
        begin
          write('-');
          delete(s,1,1);
        end;
      l:=length(s);
      while (s[l]='0') and (l>1) do dec(l);
      for i:=l downto 1 do
        write(s[i]);
    end;
    
    procedure try2(s:string);
    var
      i,l,r:longint;
    begin
      if s[1]='-' then
        begin
          write('-');
          delete(s,1,1);
        end;
      l:=length(s); r:=1;
      while (s[l]='0') and (l>1) do dec(l);
      while (s[r]='0') and (r<l) do inc(r);
      for i:=l downto r do
        write(s[i]);
    end;
    
    begin
      readln(ss);
      p:=pos('.',ss);
      if p>0 then
        begin
          try1(copy(ss,1,p-1));
          write('.');
          try2(copy(ss,p+1,length(ss)-p)); exit;
        end;
      p:=pos('/',ss);
      if p>0 then
        begin
          try1(copy(ss,1,p-1));
          write('/');
          try2(copy(ss,p+1,length(ss)-p)); exit;
        end;
      p:=pos('%',ss);
      if p>0 then
        begin
          try1(copy(ss,1,p-1));
          write('%'); exit;
        end;
      try1(ss);
    end.

    P1598 垂直柱状图
    总:注意输出。

    var
      s1,s2,s3,s4:string;
      max,min:longint;
      a:array [1..26] of longint;
    procedure init;
    var
      i:longint;
    begin
      max:=0; min:=10000;
      fillchar(a,sizeof(a),0);
      readln(s1); readln(s2); readln(s3); readln(s4);
      for i:=1 to length(s1) do
        if s1[i] in ['A'..'Z'] then
          a[ord(s1[i])-64]:=a[ord(s1[i])-64]+1;
      for i:=1 to length(s2) do
        if s2[i] in ['A'..'Z'] then
          a[ord(s2[i])-64]:=a[ord(s2[i])-64]+1;
      for i:=1 to length(s3) do
        if s3[i] in ['A'..'Z'] then
          a[ord(s3[i])-64]:=a[ord(s3[i])-64]+1;
      for i:=1 to length(s4) do
        if s4[i] in ['A'..'Z'] then
          a[ord(s4[i])-64]:=a[ord(s4[i])-64]+1;
    end;
    
    procedure print;
    var
      i,j,t:longint;
      f:boolean;
    begin
      for i:=1 to 26 do
        begin
          if a[i]>max then max:=a[i];
          if a[i]<min then min:=a[i];
        end;
      if min=0 then min:=1;
      for i:=max downto min do
        begin
          for j:=26 downto 1 do
            if a[j]>=i then
              begin
                t:=j; break;
              end;
          f:=true;
          for j:=1 to 26 do
            if (a[j]>=i) and (j<=t) then
              if not f then write (' *')
                       else begin f:=false; write ('*'); end
                       else if j<=t then write ('  ');
          writeln;
        end;
      f:=true;
      for i:=1 to 26 do
        begin
          if not f then write (' ') else f:=false;
          write (chr(i+64));
        end;
    end;
    
    begin
      init;
      print;
    end.

    P1914 小书童——密码

    var
      n,i,x:longint;
      s:string;
    begin
      readln(n);
      n:=n mod 26;
      readln(s);
      for i:=1 to length(s) do
        begin
          x:=(ord(s[i])-97+n) mod 26;
          write(chr(x+97));
        end;
    end.
  • 相关阅读:
    No.013-Python-学习之路-Day10-事件驱动及异步IO
    No.012-Python-学习之路-Day9-GIL|Thread|Process|Coroutine
    No.011-Python-学习之路-Day8-Socket网络编程
    No.010-Python-学习之路-Day7-面向对象的进阶<类中高级方法|类创建及实例的生成过程|反射>|异常处理|动态的模块导入|断言
    Python-Modules-pygame的学习记录
    No.009-Python-学习之路-Day6-面向对象的特性及语法
    No.008-Python-学习之路-Day5-random|os|sys|shutil|shelve|xml|PyYAML|ConfigParser|hashlib|RE
    No.007-Python-学习之路-Day5-模块简介|time&datetime
    【转】git使用教程
    web调试工具
  • 原文地址:https://www.cnblogs.com/zyx-crying/p/9319524.html
Copyright © 2020-2023  润新知