原题链接
解题思路:
1.本题使用模拟法
2.取第一个字符串的首元素,与剩余字符串对应位置相比较,如果全部相等将此字符加入结果中,继续到下一个字符一次比较,直至出现不相同的位置,返回结果。
3.需要注意每个字符串是否为空的边界情况。
class Solution {
public:string longestCommonPrefix(vector<string>& strs) {string res;if (strs.empty()) return res;for (int i = 0;; i ++ ) {if (i >= strs[0].size()) return res;char c = strs[0][i];//对vector中的string进行逐个遍历for (auto& str: strs){/* 如果当前sting.size()不满足条件,或者当前string[i]和指定* 的char字符不相等就直接return,注意vector中有几个此for* 循环执行几次遍历*/if (str.size() <= i || str[i] != c)return res; }//如果相等就把当前char加入结果,然后执行外层for的循环来更新char字符res += c; }return res;}
};