(LeetCode 面试经典 150 题) 14. 最长公共前缀 (字符串)
题目:14. 最长公共前缀
思路:字符串,时间复杂度0(nm)。
用第一个字符串和字符串数组后面的数组进行比较即可。
C++版本:
class Solution {
public:string longestCommonPrefix(vector<string>& strs) {string s=strs[0];int n=strs.size();for(int i=1;i<n;i++){for(int j=0;j<s.size();j++){if(j<strs[i].size()&&s[j]==strs[i][j]) continue;s=s.substr(0,j);break;}}return s;}
};
JAVA版本:
class Solution {public String longestCommonPrefix(String[] strs) {String s=strs[0];int n=strs.length;for(int i=1;i<n;i++){for(int j=0;j<s.length();j++){if(j<strs[i].length()&&s.charAt(j)==strs[i].charAt(j)) continue;s=s.substring(0,j);break;}}return s;}
}
Go版本:
func longestCommonPrefix(strs []string) string {s:=strs[0]n:=len(strs)for i:=1;i<n;i++ {for j:=0;j<len(s);j++ {if j<len(strs[i]) && s[j]==strs[i][j] {continue}s=s[:j]break}}return s
}