我正在尝试编写一个小例程,负责排列字符串的所有可能缩写。这个字符串是一个全名,用空格分隔。像这样:
James Mitchell Rhodes
我想输出:
J. Mitchell Rhodes
James M. Rhodes
J. M. Rhodes
等等......但是,我还必须考虑“停用词”:
James the Third Rhodes
我想输出:
J. the Third R.
James The Third R.
有一个已知的算法吗?很长一段时间以来,我一直在尝试解决这个问题。
更新:将每个单词放在数组中很容易。只需explode(' ', $string) 然后array_map,排除停用词考虑in_array($word, $stopWordsMap)。这不是问题,也不是问题的重点。问题是如何发现可能的原始词(O)和缩写词(A)的组合:
O A A
O A O
O A A
A A A
O O O