poj2608

【题意】

给定一串长度不超过20的字符串,

BFPV表示为1

CGJKQSXZ表示为2

DT表示为3

L表示为4

MN表示为5

R表示为6

AEIOUHWY什么也不表示

如果这一位表示的跟前一位表示的相同,则不输出

【输入】

多组数据

每组一行,为字符串

【输出】

每组数据输出一个翻译过来的数字串


写个case就过了


program poj2608;
var
  s:string;
  i,j,k,last:longint;
function hash (now:char):longint;
begin
  case now of
    'B':exit(1);
    'F':exit(1);
    'P':exit(1);
    'V':exit(1);
    'C':exit(2);
    'G':exit(2);
    'J':exit(2);
    'K':exit(2);
    'Q':exit(2);
    'S':exit(2);
    'X':exit(2);
    'Z':exit(2);
    'D':exit(3);
    'T':exit(3);
    'L':exit(4);
    'M':exit(5);
    'N':exit(5);
    'R':exit(6);
    'A':exit(0);
    'E':exit(0);
    'I':exit(0);
    'O':exit(0);
    'U':exit(0);
    'H':exit(0);
    'W':exit(0);
    'Y':exit(0);
  end;
end;

begin
  while not eof do
    begin
      readln(s);
      last:=-1;
      for i:=1 to length(s) do
        begin
          if (hash(s[i])<>0)and(hash(s[i])<>last) then write(hash(s[i]));
          last:=hash(s[i]);
        end;
      writeln;
    end;
end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值