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:
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