p10260.cpp 975 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. using namespace std;
  5. int main()
  6. {
  7. map<char, int> soundex;
  8. string word;
  9. soundex['B'] = 1;
  10. soundex['F'] = 1;
  11. soundex['P'] = 1;
  12. soundex['V'] = 1;
  13. soundex['C'] = 2;
  14. soundex['G'] = 2;
  15. soundex['J'] = 2;
  16. soundex['K'] = 2;
  17. soundex['Q'] = 2;
  18. soundex['S'] = 2;
  19. soundex['X'] = 2;
  20. soundex['Z'] = 2;
  21. soundex['D'] = 3;
  22. soundex['T'] = 3;
  23. soundex['L'] = 4;
  24. soundex['M'] = 5;
  25. soundex['N'] = 5;
  26. soundex['R'] = 6;
  27. while(cin >> word)
  28. {
  29. char last = 0;
  30. for(char c : word)
  31. {
  32. if(soundex.find(c) != soundex.end())
  33. {
  34. if(last != soundex[c])
  35. {
  36. cout << soundex[c];
  37. }
  38. last = soundex[c];
  39. }
  40. else
  41. {
  42. last = 0;
  43. }
  44. }
  45. cout << endl;
  46. }
  47. return 0;
  48. }