The description of problem
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
Chinese version
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
An example
输入:strs = ["flower","flow","flight"]
输出:"fl"
The codes to handle above problem
#include <vector>
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) return "";
string prefix = strs[0];
for (int i = 1; i < strs.size(); i++) {
int j = 0;
while (j < prefix.size() && j < strs[i].size() && prefix[j] == strs[i][j]) {
j++;
}
prefix = prefix.substr(0, j);
if (prefix.size() == 0) return "";
}
return prefix;
}
};
int main()
{
Solution s;
vector<string> strs = {"flower","flow","flight"};
cout << s.longestCommonPrefix(strs) << endl;
return 0;
}
The corresponding results
fl