龙空技术网

14. 最长公共前缀(leetcode 解题)

北漂码农 60

前言:

此时兄弟们对“最长公共子序列 leetcode”大约比较注重,你们都需要知道一些“最长公共子序列 leetcode”的相关内容。那么小编在网络上网罗了一些有关“最长公共子序列 leetcode””的相关资讯,希望姐妹们能喜欢,看官们快快来学习一下吧!

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]

输出: "fl"

示例 2:

输入: ["dog","racecar","car"]

输出: ""

解题思想:

当字符串数组长度为 0 时则公共前缀为空,直接返回令最长公共前缀 ans 的值为第一个字符串,进行初始化遍历后面的字符串,依次将其与 ans 进行比较,两两找出公共前缀,最终结果即为最长公共前缀如果查找过程中出现了 ans 为空的情况,则公共前缀不存在直接返回时间复杂度:O(s)O(s),s 为所有字符串的长度之和

 public String longestCommonPrefix(String[] strs) { if(strs.length == 0)  return ""; String ans = strs[0]; for(int i =1;i<strs.length;i++) { int j=0; for(;j<ans.length() && j < strs[i].length();j++) { if(ans.charAt(j) != strs[i].charAt(j)) break; } ans = ans.substring(0, j); if(ans.equals("")) return ans; } return ans; }

标签: #最长公共子序列 leetcode