POJ2159 Ancient Cipher
一道简单的字符串处理题,其实只要读懂题意,就不难想出算法。对于一般的字符串处理题其实大多可以用hash来处理,故下面采用一种字符串hash的方法
var
s1,s2:string;i,hash1,hash2:longint;
h1,h2:array[0..26]of longint;
begin
readln(s1);
readln(s2);
if(length(s1)<>length(s2))then writeln('NO')
else begin
for i:=1 to length(s1) do
begin
inc(h1[ord(s1[i])-ord('A')+1]);
inc(h2[ord(s2[i])-ord('A')+1]);
end;
for i:=1 to 26 do
begin
hash1:=hash1+h1[i]*h1[i];
hash2:=hash2+h2[i]*h2[i];
end;
if(hash1<>hash2)then writeln('NO') else writeln('YES');
end;
end.