< All posts

2825. Make String a Subsequence Using Cyclic Increments

๋ฌธ์ œ ์„ค๋ช…

์ด ๋ฌธ์ œ๋Š” ๋ฌธ์ž์—ด str1์™€ str2๊ฐ€ ์ฃผ์–ด์กŒ์„๋•Œ, str1์˜ ๋ฌธ์ž๋ฅผ 1์นธ ์ฆ๊ฐ€ํ•˜์—ฌ str2๊ฐ€ subsequence๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

2825

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

ํ’€์ด

class Solution:
    def canMakeSubsequence(self, str1: str, str2: str) -> bool:
        index = 0
        for char in str1:
            next_char = 'a' if char == 'z' else chr(ord(char)+1)
            if index < len(str2) and str2[index] in (char, next_char):
                index += 1
        return index == len(str2)

Complexity Analysis

tc

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

  • O(N)

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

  • O(1)

Constraint Analysis

Constraints:
1 <= str1.length <= 10^5
1 <= str2.length <= 10^5
str1 and str2 consist of only lowercase English letters.

References

ยฉ 2025 HyunJoon Sung. All Rights Reserved.

GitHub