LeetCode 풀기 - 문자를 반복하지 않는 가장 긴 부분 문자열
의문
문자열 s가 주어지면 문자를 반복하지 않고 가장 긴 부분 문자열의 길이를 찾습니다.
예 1:
Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
예 2:
Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
예 3:
Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
예 4:
Input: s = ""
Output: 0
제약 조건:
Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
Input: s = ""
Output: 0
갑시다!
를 사용하여 해결합니다.
P - 문자, 숫자, 기호 및 공백으로 구성된 문자열 s
R - 반복되는 문자가 없는 가장 긴 부분 문자열의 길이인 숫자를 반환합니다.
E - 질문에 의해 제공된 예. (위 참조)
P - 아래 참조
시도 1
var lengthOfLongestSubstring = function(s) {
const arr = s.split('')
let charMap = {}
let count = [ 0 ]
for (let i=0; i<arr.length; i++) {
if (!charMap[arr[i]]) {
count[count.length - 1] = count[count.length - 1]+1
charMap[arr[i]] = 1
} else {
charMap = {}
charMap[arr[i]] = 1
count[count.length] = 1
}
}
return count.reduce((max, current) => current > max ? current : max)
};
시도 1의 결과
console.log(lengthOfLongestSubstring("abcabcbb")) // 3 - PASS
console.log(lengthOfLongestSubstring("aab")) // 2 - PASS
console.log(lengthOfLongestSubstring("dvdf")) // 2 - FAIL (CORRECT is 3)
계속하려면...
시도 2...
Reference
이 문제에 관하여(LeetCode 풀기 - 문자를 반복하지 않는 가장 긴 부분 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/phariale/solving-leetcode-longest-substring-without-repeating-characters-1gb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)