网站管理是什么工作,小说推广平台有哪些,dw做视频网站,网站服务器建设软件题目描述 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀#xff0c;返回空字符串 。
示例 1#xff1a;
输入#xff1a;strs [flower,flow,flight]
输出#xff1a;fl返回空字符串 。
示例 1
输入strs [flower,flow,flight]
输出fl示例 2
输入strs [dog,racecar,car]
输出
解释输入不存在公共前缀。提示
1 strs.length 2000 strs[i].length 200strs[i] 仅由小写英文字母组成
解法
思路遍历第一个单词的字母依次去数组中其他字符串比较相同索引位置
java代码
class Solution {public String longestCommonPrefix(String[] strs) {if (strs null || strs.length 0) {return ;}// 遍历第一个字符串找前缀for (int i 0; i strs[0].length(); i) {boolean allContains true;// 遍历后面字符串数组依次比较其他字符串的前缀for (int j 1; j strs.length; j) {// 如果当前字符串的长度小于i或当前字符串在i的字符不等于第一个字符串的字符则结束if (strs[j].length() i 1 || strs[0].charAt(i) ! strs[j].charAt(i)) {return strs[0].substring(0, i);}}}// 遍历完后前缀都是相同的则返回第一个字符串即可return strs[0];}
}复杂度
时间复杂度O(mn))m为字符串数组长度n位最后的公共子串长度 空间复杂度O(1)