1.原题地址:
14. 最长公共前缀 - 力扣(LeetCode) (leetcode-cn.com)
2.题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
3.分析
最简单的方法是遍历每个字符串的相同位置的字符,挨个比对。
4.代码
1 class Solution { 2 public: 3 4 string longestCommonPrefix(vector<string>& strs) { 5 if(strs.size()==0) 6 return ""; 7 if(strs[0].size()==0) 8 return ""; 9 10 string result = ""; 11 for(unsigned k = 0;k<strs[0].size();++k) 12 { 13 char tmp = strs[0][k];//参照字符,初始化成第一个字符 14 for(unsigned i = 0;i<strs.size();++i)//遍历所有的字符串 15 { 16 if(strs[i].size()<k+1)//第i个字符串的长度小于 k+1 17 return result; 18 19 if(strs[i][k]!=tmp)//第i个字符串的第j个字符和tmp不相同 20 { 21 return result; 22 } 23 } 24 result = result + tmp; 25 } 26 return result; 27 } 28 };