题解 | 最长公共前缀
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47?tpId=295&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty()) return "";
string prefix = strs[0];
for (int i = 1; i < strs.size(); i++) {
int j = 0;
while (j < prefix.size() && j < strs[i].size() && prefix[j] == strs[i][j]) {
j++;
}
prefix = prefix.substr(0, j);
if (prefix.empty()) return "";
}
return prefix;
}
};
- 边界情况处理:如果输入数组为空,直接返回空字符串。
- 初始化公共前缀:将第一个字符串设为初始公共前缀。
- 遍历字符串数组:从第二个字符串开始,逐个与当前公共前缀比较。
- 更新公共前缀:使用双指针方法比较字符,找到当前字符串与公共前缀的共同部分,并更新公共前缀。
- 提前终止:如果公共前缀在比较过程中变为空,立即返回空字符串。
数据类型之字符串 文章被收录于专栏
常用操作: 连接: + 运算符 重复: * 运算符 索引:索引访问单个字符,索引从0开始 切片:指定开始索引、结束索引和步长来获取子字符串 长度:len()获取长度 成员检查:in和not in检查子字符串是否存在于字符串中 方法:字符串对象有很多方法,如split, join, upper, lower, strip, replace 由于字符串是不可变的,所以不能通过索引直接修改字符串中的字符


