使用排序查找最长公共前缀的 Javascript 程序
问题陈述:给定一组字符串,找到最长的公共前缀。
例子:
Input: {"geeksforgeeks", "geeks", "geek", "geezer"}
Output: "gee"
Input: {"apple", "ape", "april"}
Output: "ap"
字符串数组的最长公共前缀是两个最不相似的字符串之间的公共前缀。例如,在给定的数组 {“apple”, “ape”, “zebra”} 中,没有公共前缀,因为数组“ape”和“zebra”的两个最不相似的字符串不共享任何起始字符。
我们在下面的帖子中讨论了五种不同的方法。
- 逐字匹配
- 字符字符
- 分而治之
- 二进制搜索。
- 使用特里)
在这篇文章中,我们讨论了一种基于排序的新方法。这个想法是对字符串数组进行排序,并找到排序数组的第一个和最后一个字符串的公共前缀。
Javascript
输出:
The longest common prefix is : gee
时间复杂度: O(MAX * n * log n) 其中 n 是数组中的字符串数,MAX 是任何字符串中的最大字符数。请注意,两个字符串的比较最多需要 O(MAX) 时间,对于 n 个字符串的排序,我们需要 O(MAX * n * log n) 时间。
有关更多详细信息,请参阅有关使用排序的最长公共前缀的完整文章!