“假如我们的候选列表里有如下的内容:”
有你最擅长的“javascript”。
有一杯温醇的“java”。
有简洁美的“ruby”。
有世界上最好的语言“php”。
有胶水语言“python”。
还有JS低调的小兄弟“coffeescript”。
“整个列表就像这样:”
['javascript','java','ruby','php','python','coffeescript']
“假如用户在输入框键入了heaven(天堂)”。
“请将列表按照和heaven的字符串相似度进行排序”。
“相似度越高,排名越靠前”。
听到这里,杨成思索了片刻,他提出疑问。
“这个相似度参照的依据是什么呢?”
经理耐心地解释道。
“依据就是从一个字符串转换为列表内某个字符串,所需要的最少操作次数”。
“这个操作可以是新增字符,修改字符,删除字符”。
“比如从字符串berr,转换为beer,只需要修改r为e,也就是一次操作”。
“而从berr,转换为barrel,需要修改e为a,并且新增e,新增l,也就是三次操作”。
“所以berr和beer的字符串相似度更高,beer的排名比barrel更高”。
“明白了吧!”