Problem:###
Write a function to find the longest common prefix string amongst an array of strings.
Solution:###
Assume the first string is the result. Compare it to all strings and limit the result while each comparison.
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) return "";
string result = strs[0];
for(int i = 1;i < strs.size();i++)
{
for(int j = 0;j < result.size();j++)
{
if(result[j] != strs[i][j])
{
if(j == 0)
{
result = "";
break;
}
result = result.substr(0, j);
break;
}
}
}
return result;
}
};
Memo:###
The use of substr
is s.substr(startposition,length)
#include <iostream>
#include <string>
int main ()
{
std::string str="We think in generalities, but we live in details.";
// (quoting Alfred N. Whitehead)
std::string str2 = str.substr (3,5); // "think"
std::size_t pos = str.find("live"); // position of "live" in str
std::string str3 = str.substr (pos); // get from "live" to the end
std::cout << str2 << ' ' << str3 << '\n';
return 0;
}