
在算法面试中,有一类题目看起来没有太多花哨的技巧,却经常让人'翻车'——那就是字符串模拟题。这类题型往往不依赖复杂的数据结构或高级算法,更多的是对逻辑构造能力、字符串操作细节以及边界处理的考察。本文将通过几个典型字符串模拟题的拆解,帮助你梳理解题思路、掌握通用技巧。
最长公共前缀
题目链接: LeetCode 14. 最长公共前缀

解法一:两两比较
核心思路是不断循环寻找字符不相等的位置。利用 substr 接口进行字符串截取。这里有个关键点:根据木桶效应,取最短字符串的长度作为'最长公共前缀'的上限。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
// 解法一:两两结合
if (strs.empty()) return "";
string tmp = strs[0];
for (int i = 1; i < strs.size(); i++) {
tmp = findPrefix(tmp, strs[i]);
if (tmp.empty()) break;
}
return tmp;
}
private:
string {
i = ;
(i < (s(), s()) && s1[i] == s2[i]) {
i++;
}
s(, i);
}
};







