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;
}
};