
😎풀이
s 순회
1-1. k개의 범위 순회
1-2. 모든 요소가 고유한 하나의 문자인지 검증
1-3. 부분 문자열 이전, 이후 문자가 동일하지 않은지 검증
1-4. 모든 조건 만족 시 특별한 부분 문자열이 있으므로, true 반환
- 모든 범위 순회 후 특별한 부분 문자열을 찾지 못했으므로,
false 반환
function hasSpecialSubstring(s: string, k: number): boolean {
for(let i = 0; i <= s.length - k; i++) {
const curSubStr = s.slice(i, i + k)
const set = new Set(curSubStr)
if(set.size > 1) continue
const prevChar = s[i - 1] ?? ''
const nextChar = s[i + k] ?? ''
if(curSubStr[0] === prevChar) continue
if(curSubStr[0] === nextChar) continue
return true
}
return false
};