我正在实现基于电话键盘的字母搜索,例如电话键盘1
当用户键入 2 时,我得到 {A, B, C} 的组合。当用户输入 23 时,我在组合中得到 {AD, AE, AF, BD, BE, BF, CD, CE, CF},依此类推。如果我继续输入并进行组合,我会得到数千个组合,这会使搜索过程非常缓慢。所以现在我想实现一个算法来删除像CF BD CD这样的不合逻辑的组合,我的意思是逻辑上没有人的名字以这些组合开头,也许是两个没有元音的辅音。所以这样我想缩小我的搜索范围。任何人都知道这种状态机,用 C 实现?