C++
输出字符串上的索引:string.substr(起始位置索引,子串长度),长度比索引多一
因为当判断到不相等的位置时,此时的i是多一的,所以直接等于要输出的子串的长度
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size()<1) return "";
int len = strs[0].length();
for(int i=0;i<len;i++){
char c = strs[0][i];
for(int j=1;j<strs.size();j++){
if(strs[j].size()==i||strs[j][i]!=c)
//如果之后的字符串长度不够了,这时候循环的i等于他的长度,i对应的字符没有在答案中
return strs[0].substr(0,i);
//这时候的i对应的字符串没有算在内,但是i还是加了1,此时的i与子串的长度相同
}
}
return strs[0];
}
};
Python
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs)<1: return ""
n = len(strs[0])
i = 0
for c in strs[0]:
for j in range(1,len(strs)):
if len(strs[j])==i or strs[j][i]!=c:
return strs[0][:i] #这里不符合条件时,i对应的字符是下一个,并不在结果内
i += 1
return strs[0]