#include<iostream>
using namespace std;
#include<string>
#include<vector>
#include<algorithm>
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int nl = 0;
string str_1="";
for (int i = 0; i < strs.size(); i++)
{
nl = max(nl, int(strs[i].length()));
}
for (int i = 0; i < nl; i++)
{
int work = 1;
for (int j = 0; j < strs.size(); j++)
{
if (strs[j][i] != strs[0][i])
{
work = 0;
break;
}
}
if (work == 1) str_1 += strs[0][i]; //随便加strs中任一个字符串的当前字符!
else break;
}
return str_1;
}
};
刷题总结:
先用一个 nl 计下 strs 中最短的那个字符串的字符个数,因为遍历最长的长度职能是 nl 。再用两个循环和一个work控制所有的字符串到目前为止字符是否相同,最后遍历 strs 中每个字符串就行了。