题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串
""
。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
for(int i = 0; i < strs[0].length();i++){
char ch = strs[0][i];
for(int j = 1;j < strs.size();j++){
if(i == strs[j].length() || strs[j][i] != ch)
return strs[0].substr(0,i);
}
}
return strs[0];
}
};
以第一个字符串 strs[0] 为基准,将 strs[0] 中的每一个字符拿出来,与其它字符串的每一个对应位置的字符比较, 如果后面的字符串有 strs[j][i] != strs[0][i] 就直接返回 strs[0] 的子串 substr(0,i) ,若遍历完 strs[0] 字符串,则说明 strs[0] 为所有字符串的公共前缀