Write a function to find the longest common prefix string amongst an array of strings.
It seems that it is not to check between pair of strings but on all the strings in the array.
For example:
-
{"a","a","b"} should give "" as there is nothing common in all the 3 strings.
-
{"a", "a"} should give "a" as a is longest common prefix in all the strings.
-
{"abca", "abc"} as abc
-
{"ac", "ac", "a", "a"} as a.
Logic goes something like this:
-
Pick a character at i=0th location and compare it with the character at that location in every string.
-
If anyone doesn't have that just return ""
-
Else append that character in to the result.
-
Increment i and do steps 1-3 till the length of that string.
-
return result.
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string prefix("");
if (strs.empty()) return prefix;
for(int j = 0; j < strs[0].size(); ++j)
{
for(int i = 1; i < strs.size(); ++i)
{
if(strs[i][j] != strs[0][j])
return prefix;
}
prefix += strs[0][j];
}
return prefix;
}
};
本文介绍了一种寻找字符串数组中最长公共前缀的算法。通过逐字符比较所有字符串中的相应位置来确定公共前缀,直至遇到不匹配的字符或达到某个字符串的末尾。
281

被折叠的 条评论
为什么被折叠?



