首页 > 代码库 > Leetcode:Longest Common Prefix 最长公共前缀
Leetcode:Longest Common Prefix 最长公共前缀
戳我去解题
Write a function to find the longest common prefix string amongst an array of strings.
class Solution { public: string longestCommonPrefix(vector<string> &strs) { if (strs.size() == 0) return ""; string res; for (int i = 0; ; ++i) { int j = 0; for (j = 0; j < strs.size(); ++j) { if (i >= strs.at(j).size() || strs.at(0).at(i) != strs.at(j).at(i)) break; } if (j < strs.size()) break; res += strs.at(0).at(i); } return res; } };
下标i指示第一个字符串,下标j指示vector
a b c
a b d e f
a b d e
a b c d
我们采用纵向比较,首先比较 纵向4个a,然后纵向4个b,然后到第三列的d,发现不相同
比较过程中,我们需要注意:
1. 下标i值必须小于 每一行字符串长度
2. 一旦发现一个与第一行同列不相同的值就break
我们可以知道:
如果整列都相同,则j值一定等于 strs.size() 此时添加该公共字符,
如果 j值小于 strs.size(),则意味着有不相同的值(因为提前break了),这时就中断外层循环
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。