天天看點

Soundex pku 2608

Soundex

Time Limit:1000MS  Memory Limit:65536K

Total Submit:2790 Accepted:1450

Description

Soundex coding groups together words that appear to sound alike based on their spelling. For example, "can" and "khawn", "con" and "gone" would be equivalent under Soundex coding.

Soundex coding involves translating each word into a series of digits in which each digit represents a letter:

Input

Each line of input contains a single word, all upper case, less than 20 letters long.

Output

For each line of input, produce a line of output giving the Soundex code.

Sample Input

Sample Output

Source

Waterloo local 1999.09.25

Soundex pku 2608

#include  < iostream >

Soundex pku 2608

#include  < string >

Soundex pku 2608

using   namespace  std;

Soundex pku 2608
Soundex pku 2608

int  a[ 26 ] = ... {-1,1,2,3,-1,1,2,-1,-1,

Soundex pku 2608

           2,2,4,5,5,-1,1,

Soundex pku 2608

            2,6,2,3,-1,1,-1,

Soundex pku 2608

            2,-1,2} ;

Soundex pku 2608

int  main()

Soundex pku 2608
Soundex pku 2608

... {

Soundex pku 2608

    string str,out;

Soundex pku 2608

    int i,k;

Soundex pku 2608

    while(cin>>str)

Soundex pku 2608
Soundex pku 2608

    ...{

Soundex pku 2608

     out="";

Soundex pku 2608

     int len=str.length();

Soundex pku 2608

     for(i=0;i<len;i++)

Soundex pku 2608
Soundex pku 2608

        ...{

Soundex pku 2608

            k=a[str[i]-'A'];

Soundex pku 2608

            if(k==-1)continue;

Soundex pku 2608

            if(i>0&&k==a[str[i-1]-'A'])

Soundex pku 2608

             continue;

Soundex pku 2608

            out+=(k+'0'); 

Soundex pku 2608

         }   

Soundex pku 2608

         cout<<out<<endl;

Soundex pku 2608

    }

Soundex pku 2608

    return 0;

Soundex pku 2608

}

Soundex pku 2608
25
1236
11
      
KHAWN
PFISTER
BOBBY
      
1 represents B, F, P, or V

      2 represents C, G, J, K, Q, S, X,  or Z

      3 represents D or T

      4 represents L

      5 represents M or N

      6 represents R      

The letters A, E, I, O, U, H, W, and Y are not represented in Soundex coding, and repeated letters with the same code digit are represented by a single instance of that digit. Words with the same Soundex coding are considered equivalent.