< All posts

1930. Unique Length-3 Palindromic Subsequences

๋ฌธ์ œ ์„ค๋ช…

์ด ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ๊ธธ์ด๊ฐ€ 3์ธ Palindromic Subsequences์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋‹ค. 2025๋…„ ์ฒซ ๋ฌธ์ œ๋‹ค.

1930

ํ’€์ด ๋ฐ ํ•ด์„ค

  • ํˆฌ ํฌ์ธํ„ฐ์™€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋‹ค.

ํ’€์ด

class Solution:
    def countPalindromicSubsequence(self, s: str) -> int:
        first = {}
        last = {}

        for i, char in enumerate(s):
            if char not in first:
                first[char] = i
            last[char] = i
        
        result = 0

        for char in set(s):
            if first[char] < last[char]:
                unique = len(set(s[first[char] + 1:last[char]]))
                result += unique
        
        return result

Complexity Analysis

tc

์‹œ๊ฐ„ ๋ณต์žก๋„

  • O(N)

๊ณต๊ฐ„ ๋ณต์žก๋„

  • O(1)

Constraint Analysis

Constraints:
- 3 <= s.length <= 10^5
- s consists of only lowercase English letters.

References

ยฉ 2025 HyunJoon Sung. All Rights Reserved.

GitHub