POJ 1002(字符串处理)

来源:互联网 发布:最大熵模型 python 编辑:程序博客网 时间:2024/06/08 10:36

这题就是字符串处理


Program P1002;Type   phone=record         num,s:longint;         end;var   n,i,j,p:Longint;   b:boolean;   s:ansistring;   a:array[0..9999999] of longint;// f:array[1..100000] of phone;   ch:array['A'..'Z'] of longint=(2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,-1,7,7,8,8,8,9,9,9,-1);function isdight(c:char):longint;var   i,j,p:longint;begin   p:=ord(c);   if (48<=p) and (p<58) then exit(p-48);   if (65<=p) and (p<=90) then   begin      if ch[c]<>-1 then exit(ch[c]);   end;   exit(-1);end;function hash:longint;var   i,j,p:longint;begin   j:=0;   hash:=0;   for i:=1 to length(s) do   begin      if s[i]='-' then continue;      p:=isdight(s[i]);      if (p=-1) or ((p<>-1) and (j=7)) then exit(-1);      hash:=hash*10+p;      inc(j);   end;   if j<>7 then exit(-1);end;procedure pri(p:longint);var   i,j:longint;begin   b:=true;   i:=p div 10000;   j:=p mod 10000;   if i<100 then write('0');   if i<10 then write('0');   write(i,'-');   if j<1000 then write('0');   if j<100 then write('0');   if j<10 then write('0');   writeln(j,' ',a[p]);end;Begin   b:=false;   readln(n);   fillchar(a,sizeof(a),0);   for i:=1 to n do   begin      readln(s);      p:=hash;      if p=-1 then continue      else inc(a[p]);   end;   for i:=0 to 9999999 do      if a[i]>1 then pri(i);   if not(b) then writeln('No duplicates.');End.


原创粉丝点击