Write a function to find the longest common prefix string amongst an array of strings.
1、string的length()和size()没有区别,size()更符合std的规范,length()是c语言中习惯的用法。
2、删除函数
iterator erase(iterator first, iterator last);//删除[first,last)之间的所有字符,返回删除后迭代器的位置
iterator erase(iterator it);//删除it指向的字符,返回删除后迭代器的位置
string &erase(int pos = 0, int n = npos);//删除pos开始的n个字符,返回修改后的字符串(如果省略npos,默认pos后全部删除)
3、这道题很简单,但由于边界值错误浪费了很多时间。今后遇到边界值错误时,不仅要排除逻辑错误,更要排除边界值本身取值的错误。
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
int len,len1,i,j;
string s;
len=strs.size();
if(len<=0)
return "";
s=strs[0];
for(i=1;i<len;i++)
{
len1=s.size()<strs[i].size()?s.size():strs[i].size();
if(len1<=0)
return "";
for(j=0;j<len1;j++)
{
if(s[j]!=strs[i][j])
break;
}
s.erase(j);
}
return s;
}
};