leetcode 14
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 else 22 { 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 else 40 { 41 break; 42 } 43 } 44 longest = s; 45 } 46 return longest; 47 } 48 };
以上是关于leetcode 14的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段14——Vue的axios网络请求封装
LeetCode(剑指 Offer)- 14- I. 剪绳子
LeetCode(剑指 Offer)- 14- I. 剪绳子
leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段