가장 긴 문자열 찾기
문제
내 풀이
으... 어렵다.. 문자열의 요소 중 중복이 없는 가장 긴 문자열인데 중복이 생기면 중복 앞부터 쭉 세면 된다. 로직을 이상하게 짜서 실패..
다른 사람 풀이
은정님 풀이
현지님 풀이
const isValid = (size, str) => { //중복아닌게 하나라도있으면 true
let s = 0,
e = size - 1;
let mymap = new Map();
for (let i = 0; i <= e; i++) {
if (mymap.has(str[i])) {
let cnt = mymap.get(str[i]);
mymap.delete(str[i]);
mymap.set(str[i], cnt + 1);
} else mymap.set(str[i], 1);
}
if (mymap.size === size) return true;
while (e < str.length - 1) {
e++;
let cnt = mymap.get(str[s]);
if (cnt === 1) mymap.delete(str[s]);
else {
mymap.delete(str[s]);
mymap.set(str[s], cnt - 1);
}
s++;
if (mymap.has(str[e])) {
let tmpcnt = mymap.get(str[e]);
mymap.delete(str[e]);
mymap.set(str[e], tmpcnt + 1);
} else mymap.set(str[e], 1);
if (mymap.size === size) return true;
}
return false;
}
const getLengthOfStr = str => {
let s = 0,
e = str.length,
mid, answer = 0;
while (s <= e) {
mid = Math.floor((s + e) / 2);
if (isValid(mid, str)) {
s = mid + 1;
answer = (answer < mid) ? mid : answer;
} else e = mid - 1;
}
return answer;
}
Author And Source
이 문제에 관하여(가장 긴 문자열 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dongha1992/알고리즘-가장-긴-문자열-찾기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)