Leetcode刷题记录(No.14最长公共前缀)

题目描述:

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。



思路:通过取vector中的第一个元素,提取该元素的各个子字符,对vector中的每个元素进行对应字符比较

(********C++版本***********)

string longestCommonPrefix(vector<string>& strs) {

if (strs.empty())

return "";

for (unsigned int i = 0; i < strs[0].length(); ++i)

{

for (unsigned int j = 1; j < strs.size(); ++j)

{

if ((i >= strs[j].length()) || (strs[0][i] != strs[j][i]))

{

return i > 0 ? strs[0].substr(0, i) : "";

}

}

}

return strs[0];

}



substr(i,j)是字符串复制函数,从位置i开始,复制j个字符。






你可能感兴趣的:(C++)