Instruções

Soundex

Algoritmo Soundex lida com as *intenções* das palavras. Ele cria uma representação para palavras que soam semelhantes. É usado para buscar <em>nomes</em> e <em>endereço</em>. Isso significa que a pessoa que preencheu o <em>name</em> pode se concentrar em como soa em vez de corrigir a ortografia dos <em>names</em>. Por exemplo: Se você está ouvindo o nome Quenci pela primeira vez e o escreveu errado, você obterá o código Soundex Q520. Quando você soletrar o nome Quincy corretamente da próxima vez, ainda receberá o mesmo código Q520, o que significa que você pode vincular múltiplas pronúncias do nome à mesma <em>person</em> sem a necessidade de adicionar todas as variações de grafia. Aqui estão as regras: <ul> <li>If a vowel (A, E, I, O, U) separates two consonants that have the same soundex code, the consonant to the right of the vowel is coded. Tymczak is coded as T-522 (T, 5 for the M, 2 for the C, Z ignored (see "Side-by-Side" rule above), 2 for the K). Since the vowel "A" separates the Z and K, the K is coded.</li> <li>If "H" or "W" separate two consonants that have the same soundex code, the consonant to the right of the vowel is not coded. Example: Ashcraft is coded A-261 (A, 2 for the S, C ignored, 6 for the R, 1 for the F). It is not coded A-226.</li> </ul>

O que fazer:

Escreva uma função que receba uma string como parâmetro e retorne a string codificada.

Critérios de Aceitação:

Testes:

  • `soundex` deve ser uma função.
  • `soundex("Soundex")` deve retornar uma string.
  • `soundex("Soundex")` deve retornar `"S532"`.
  • `soundex("Example")` deve retornar `"E251"`.
  • `soundex("Sownteks")` deve retornar `"S532"`.
  • `soundex("Ekzampul")` deve retornar `"E251"`.
  • `soundex("Euler")` deve retornar `"E460"`.
  • `soundex("Gauss")` deve retornar `"G200"`.
  • `soundex("Hilbert")` deve retornar `"H416"`.
  • `soundex("Knuth")` deve retornar `"K530"`.
  • `soundex("Lloyd")` deve retornar `"L300"`.
  • `soundex("Lukasiewicz")` deve retornar `"L222"`.

Console