본문 바로가기
코딩 테스트

[LeetCode] 290.Word Pattern (Python)

by zoodi 2025. 1. 28.
728x90

Problem

https://leetcode.com/problems/word-pattern/description/?envType=study-plan-v2&envId=top-interview-150

 

Solution

array

 

이전에 포스팅한 isomorphic string 과 동일한 문제.

단지 스트링이 단순한 문자열이 아닌 단어로 이루어진 문장으로 변형한 문제.

동일하게 sub string을 통해서 각 단어의 index 를 구한 후 pattern 과 비교하였다.

 

 

Code

class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        answer = False
        patternLi , sLi = [], []
    
        for p in pattern:
            patternLi.append(pattern.index(p))
        
        sub_str = s.split()
        for char in sub_str:
            sLi.append(sub_str.index(char))
        
        if len(patternLi) != len(sLi):
            return False
        
        if patternLi == sLi:
            answer = True

        return answer

 

Complexity

Time complexity

주어진 string s, pattern 모두 for문을 1번 도므로 O(N)의 시간 복잡도를 가진다.

 

Space complexity

각각 list 를 문자열의 길이만큼 가지므로 O(N)이다.

 

비슷한 이전 문제는 아래 링크

 

[LeetCode] 205. Isomorphic String (Python)

ProblemSolutionArray두 개의 문자열 s, t가 동형(isomorphic)인지 확인하는 문제. s에 존재하는 문자를 가지고 t를 만들 수 있으면 두 문자열 s, t는 동형이다. 단, 문자의 순서를 유지하며 모든 문자를 다른

hyeri0903.tistory.com

 

728x90

댓글