别害怕失败,只要做对一次就够了。

题目描述:

最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

解题代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int i;
string ans_str = "";
int min_len = 1000000;
for(i = 0; i < strs.size(); i++){
if(strs[i].length() < min_len){
min_len = strs[i].length();
}
}

i = 0;
while(i < min_len){
char c = strs[0][i];
for(int j = 1; j < strs.size(); j++){
if(strs[j][i] != c){
return ans_str;
}
}
i++;
ans_str += c;
}
return ans_str;
}
};

image-20231021165435032

解读与收获:

简单题,首先统计出最短字符串,然后同时比较字符串的i下标对应的字符是否一致,相同则加到结果中,不同则直接返回当前结果。