首页 > 代码库 > leetcode 14
leetcode 14
14. Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
找出字符串集合的最长公共前缀。
思路:先计算出前两个字符串的最长公共前缀s,然后用s去和剩下的字符串依次计算公共前缀,若计算结果的长度小于s的长度时替换s,
循环执行,直到所有字符串参与计算,此时s即为整个字符串集合的最长公共前缀。
需要注意当字符串集合为空时的处理。
代码:
1 class Solution { 2 public: 3 string longestCommonPrefix(vector<string>& strs) { 4 string longest = ""; 5 int n = 0; 6 if(strs.size() == 1) 7 { 8 return strs[0]; 9 }10 if(strs.size() == 0)11 {12 return "";13 }14 strs[0].length() > strs[1].length() ? n = strs[1].length() : n = strs[0].length(); 15 for(int i = 0; i < n; ++i)16 {17 if(strs[0][i] == strs[1][i])18 {19 longest += strs[0][i];20 }21 else22 {23 break;24 }25 }26 for(int i = 2; i < strs.size(); ++i)27 {28 string s = "";29 for(int j = 0; j < longest.length(); ++j)30 {31 if(j >= strs[i].length() && strs[i][0] == longest[0])32 {33 s = strs[i];34 }35 if(longest[j] == strs[i][j])36 {37 s += longest[j];38 }39 else40 {41 break;42 }43 }44 longest = s;45 }46 return longest;47 }48 };
leetcode 14
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。