LeetCode 3. Longest Substring Without Repeating Characters
2022.08.21
問題
typescript
typescriptfunction lengthOfLongestSubstring(s: string): number { const result = s.split('').reduce((prev, current) => { const beforeAppearedIndex = prev.subString.indexOf(current) const subString = beforeAppearedIndex === -1 ? prev.subString + current : prev.subString.slice(beforeAppearedIndex + 1) + current return { maxLength: Math.max(prev.maxLength, subString.length), subString } }, { maxLength: 0, subString: '' }) return result.maxLength }
- reduce使う
- 今の候補となっている文字列に対して、indexOf(current)で重複がないかチェック
- 重複してたら、sliceでその文字以降と今の文字
- 重複してないなら、単に足していく