目标:将输入单词转换为Soundex编码
#soundex 算法实现步骤
word = input().lower()
s=""
for ch in word:
if s =="": #该单词的第一个字符保留为soundex代码的第一个字符
s+=ch
continue
if ch in "aeiouhwy":
continue #丢弃以下字母 aeiouhwy
#剩下的辅音按照下表中给定的规则赋值一个数字代码
if ch in "bpfv":
s+="1"
if ch in "cskgjqxz":
s+="2"
if ch in "dt":
s+="3"
if ch in "l":
s+="4"
if ch in "mn":
s+="5"
if ch in "r":
s+="6"
#如果具有相同代码的辅音连续出现,则只能编号一次
dict={}
soundex = ""
for ch in s:
if ch not in dict:
dict[ch]=1
soundex+=ch
else:
continue
while(len(soundex)<4): # 如果超过四位 取前四位 不足补0
soundex+="0"
print(soundex[0:4])
# ROSNER
# r256