Offer_3 无重复子串
对字符串模拟 - 对于字符串来说 - 使用left来记录不重复的最左位置,使用i 遍历s的中每个字符,利用max保存最大长度,判断i- left + 1是否大于当前max值。
特别的,要考虑到字符串为空或者字符串只有一个空格的情况。
class Solution { public int lengthOfLongestSubstring(String s) { if (s.length() == 0 || s == null) { return 0; } int left = 0; char[] c = s.toCharArray(); int max = 1; for (int i = 1; i < c.length; i++) { for (int j = left; j < i; j++) { if (c[i] == c[j]) { left = j + 1; break; } } max = max < (i - left + 1) ? (i - left + 1) : max; } return max; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步