Description:
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 “”.
solution1:
暴力解法,但是沒通過,扎心了。
string longestCommonPrefix(vector<string>& strs) {
int len=strs.size();
int key;int add;
for(int i=0;i<strs[0].size();i++)
{
int j=1;
//判斷有沒有所有的數組在第i個位置的字符是否相同
//問題是這樣得不到結束的位置
while(strs[0][j]==strs[i+j][j-1]&&j<strs[i+j].size())
{
j++;
key=i;
add=j;
}
}
if(add==len-1)
{
string str="";
for(int j=0;j<key;j++)
{
str+=strs[0][j];
}
return str;
}
return "";
}
good solution2
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0)
return "";
int i = -1;
while(strs[0][++i])
for(int j = 0;j < strs.size();j++)
if(strs[j][i] != strs[0][i])
return strs[0].substr(0,i);
return strs[0].substr(0,i);
}
時常因爲自己太蠢而感到泄氣。
但是再蠢也要寫,嚶嚶嚶。