最长公共前缀_牛客题霸_牛客网 (nowcoder.com)
1.如果是空的那直接返回空的;
2.遍历第一个字符串的长度,从第一个字符串一个一个找后面是否和第一个字符串对应位置相同,不相同就将前面分割出来使用substr函数,因为这个函数是左闭右开的所以直接用;
class Solution {
public:
/**
*
* @param strs string字符串vector
* @return string字符串
*/
string longestCommonPrefix(vector<string>& strs) {
// write code here
int n = strs.size();
//空字符串数组
if(n == 0) return "";
//遍历第一个字符串的长度
for(int i = 0; i < strs[0].length(); i++){
char temp = strs[0][i];
//遍历后续的字符串
for(int j = 1; j < n; j++){
//比较每个字符串该位置是否和第一个相同
if(i == strs[j].length() || strs[j][i] != temp){
//不相同则结束
return strs[0].substr(0,i);
}
}
}
//后续字符串有整个字一个字符串的前缀
return strs[0];
}
};