算法生成给定字符串的所有可能的字母组合,最小可达2个字母
在为不同长度的字符串生成所有可能的字母组合时,我遇到了一个问题。如果我只生成固定长度的排列,这对我来说就不是问题了……但我希望减少字符串的长度,并从最大长度小于原始字符串的字符串的原始字母集获得所有可能的排列。例如,假设我想要字符串长度为2,但我有一个3个字母的字符串“abc”,输出将是: ab ac
它使用哪种算法?在最坏的时间和空间复杂度下,我们还有其他算法:让n=字符串长度,m=模式长度。Knuth Pratt算法:时间= O(n+m),空间= O(m)
Boyer算法:时间= O(n*m),空间= O (S ) (S=字符集的大小)在任何方面strstr()在时间和空间复杂度上都优于上述算法?