【题目描述】
Write a function to find the longest common prefix string amongst an array of strings.
【思路】
水题一道,没什么难点,但是在一个地方wa了好几次,没有考虑到如果在比较中prefix较上一次没有变化的话应该pos为前缀长度的,没有事先给pos赋好初值。
ps:
1、substr(0,s)//表示从开头开始的长度为s的子串
【代码】
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==0) return "";
int n=strs.size();
string prefix=strs[0];
for(int i=1;i<n;i++){
if(strs[i].length()==0||prefix.length()==0) return "";
int len = prefix.length() < strs[i].length() ? prefix.length() : strs[i].length();
int pos=len;//就是在这里wa了好几次!!!
for(int j=0;j<len;j++){
if(prefix[j]!=strs[i][j]){
pos=j;
break;
}
}
prefix=prefix.substr(0,pos);
}
return prefix;
}
};
本文介绍了一种寻找字符串数组中最长公共前缀的方法。通过迭代对比,逐步缩小前缀范围,直至找到最长公共部分。文章特别强调了实现过程中容易忽略的细节。
387

被折叠的 条评论
为什么被折叠?



