怎样判断字符串是否由拼音组成

我请讲解下,怎样判断字符串是否由拼音组成
最新回答
萌姐姐不萌

2021-05-03 03:16:09

如果您是做输入法引擎的话,不能这么做的。任意的用户字母串都是拼音串。
例如:hello可以拆解为 he‘l’l‘o四段,您通过拼音输入法输入的话是可以完成输入的。
所以要做的话应该采用自动机原理,或者树结构来存储以任意字符开头的全部合法拼音组合。
例如 a开头的字符有 a、ai、ao、an、ang,那么以a开头的树的形状如下,+表示叶子结点,即若遇到此叶子节点则序列此时结束为合法序列。
a

i o n +
+ + + g

若给您一个字串是以a开头的,则从此树的根结点开始查找,例如序列为anaang
则起始查到an下一个字符为a所以已经无法再向下查找了,此时an即为一个拼音段,
接着下一个序列又是以a开头的所以继续在此树中查找,可以查到a此时a即为一个拼音段,
接下来重复这个过程,得到ang所以anaang的序列就被划分为了an'a'ang序列。
您只需要为26首字母建立树即可完成所有序列的匹配。