해당 문제는 SubString
과 SubSequence
의 차이를 아냐가 중요하다.
조건:
원본 문자열에서 순서와 위치가 그대로 유지되어야 함.
중간에 끊기지 않고 붙어 있어야 함.
예시:
원본: "abcdef"
substring 예: "abc", "cde", "f"
substring 아님: "ace" (연속되지 않음)
비유: 책에서 한 페이지의 연속된 단락을 그대로 복사한 것.
조건:
문자들의 상대적인 순서만 같으면 됨.
중간에 문자가 빠져도 됨.
예시:
원본: "abcdef"
subsequence 예: "ace", "bdf", "abcdef"
subsequence 아님: "cae" (순서가 바뀜)
비유: 책에서 여러 문장을 건너뛰어 골라내는 것, 단 골라낸 순서는 원래 순서대로 유지.
따라서
a
와 b
로 표현 가능한 두 경우의 수가 있으므로 2 반환function removePalindromeSub(s: string): number {
return isPalindrome(s) ? 1 : 2
};
function isPalindrome(s: string) {
return s === [...s].reverse().join('')
}