赞
踩
编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ""
。并且我们假设:
a-z
。- 输入: ["flower","flow","flight"]
- 输出: "fl"
- 输入: ["dog","racecar","car"]
- 输出: ""
- 输入: ["java","javascript","json"]
- 输出: "j"
在分析此类问题,我们的思路应该大致如下:
下面我们以 ["flower","flow","flight"] 为例,图解执行过程:
蓝色线表示第一次循环比较,找到相同的“f”并记录下来;红色线表示第二次循环比较,找到相同的“l”并记录下来;黄色线表示第三次循环比较,因为“flight”中的“i”不等于“flower”中的“o”,故终止循环并返回“fl”。
- var longestCommonPrefix = function(strs) {
- var firstStrs = strs[0];
- var result ='';
- if(!strs.length){
- return result;
- }
- for (var i = 0; i < firstStrs.length; i++) {
- for (var j = 1; j < strs.length; j++) {
- if(firstStrs[i] != strs[j][i]){
- return result;
- }
- }
- result += firstStrs[i];
- }
- return result;
- };
该代码通过两层循环来得到最终内容,每一次外层循环都可以得到一个相同的字符串(如果有的话)。
该算法的时间复杂度为
相关链接:https://leetcode-cn.com/problems/longest-common-prefix/description/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。