【题意】
给定一串长度不超过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.