【LeetCode】最长公共前缀 Java 题解
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
复制代码
思路分析
今天的算法题目是字符串处理题目。题目需要求解的是找出字符串数组中的最长公共前缀。这里的重点关键字是“公共前缀”。也就是说,取任意两个字符串公共前缀的时候,遍历的时候从下标 0 开始遍历。实际比较过程中,我们可以先分别计算两个字符串的长度,公共前缀的长度一定小于等于较短的字符串。
我们可以依次遍历字符串数组中的每个字符串,对于每个遍历到的字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。实际遍历操作中,我们首先设定字符串数组的第一个元素为前缀,然后在动态更新长度。在求公共前缀的时候,如果前缀的长度为 0,则可以直接跳出循环。
具体实现代码如下,供参考。
通过代码
复制代码
总结
上述代码的时间复杂度是 O(n * n), 空间复杂度是 O(n)
坚持算法每日一题,加油!欢迎算法爱好者一起交流学习。
版权声明: 本文为 InfoQ 作者【Albert】的原创文章。
原文链接:【http://xie.infoq.cn/article/cebe3fe5596a4a3a933956094】。文章转载请联系作者。
评论