3. Longest Substring Without Repeating Characters
Problem
Given "abcabcbb", the answer is "abc", which the length is 3.
Given "bbbbb", the answer is "b", with the length of 1.
Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.Analysis
Code
class Solution {
fun lengthOfLongestSubstring(s: String): Int {
val map = HashMap<Char, Int>()
var last = -1
var maxLen = 0
for (i in s.indices) {
last = maxOf(last, map[s[i]] ?: -1)
maxLen = maxOf(maxLen, i - last)
map[s[i]] = i
}
return maxLen
}
}Last updated