首页 > 科技 > > 正文
2025-04-05 02:01:20

👨‍💻 Leetcode 395:找字符串中的最长重复字符 📊

导读 今天来聊聊LeetCode第395题,题目要求我们找出一个字符串中由相同字符组成的最长子串长度。为了解决这个问题,我用了一个`int[] cnt = n...

今天来聊聊LeetCode第395题,题目要求我们找出一个字符串中由相同字符组成的最长子串长度。为了解决这个问题,我用了一个`int[] cnt = new int[26];`的小技巧,把每个字母出现的次数存进数组里,方便统计。🤔

核心思路是滑动窗口法,通过两个指针维护一个动态窗口,不断调整窗口大小,同时记录当前窗口内最多出现字符的次数。如果窗口长度减去这个最大频次不超过允许的最大替换次数,就继续扩展窗口;否则,收缩左侧边界缩小范围。🎯

比如对于字符串 `"aababba"`, 我们可以找到最长的重复字符子串是 `"aa"` 或 `"bb"`,长度为2。✨ 这种方法不仅高效,还能很好地锻炼对数组和双指针的理解。如果你也想挑战类似的算法问题,不妨试试看!💪

算法学习 LeetCode 滑动窗口