C++寻找
字符串操作里头有个挺经典的面试题,叫寻找不含重复字符的最长子串。用得上滑动窗口那一套,逻辑清晰,写起来还蛮爽的。思路就像扫地毯:你右边往前推,一碰到重复的,左边收回来,整个过程就保持一个无重复的“窗口”,顺带记录最大长度,完事儿。
如果你是用C++写,哈希集合std::unordered_set
就挺好用,搭配两个指针走一走,效率也不错。像下面这段代码,简单明了,面试时候也容易解释:
#include
#include
int lengthOfLongestSubstring(std::string s) {
int left = 0, max_len = 0;
std::unordered_set char_set;
for (int right = 0; right < s xss=removed>
想多看点字符串玩法的话,最大公共子串也挺有意思;或者去除冗余字符这种清洗类的,也常见。
如果你在刷题,建议这个问题用滑动窗口练熟了,对后面那些子串题、窗口类题目都有。写得顺了,也能当模板直接套。
776B
文件大小:
评论区