Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 1.36 KB

풀이_LC796.md

File metadata and controls

38 lines (26 loc) · 1.36 KB

🩳 796. Rotate String

  • Date : 2021.12.05(일)
  • Time : 10분

Problem

  • Given two strings s and goal, return true if and only if s can become goal after some number of shifts on s. A shift on s consists of moving the leftmost character of s to the rightmost position.
    • For example, if s = "abcde", then it will be "bcdea" after one shift.

Constraints

  • 1 <= s.length, goal.length <= 100
  • s and goal consist of lowercase English letters.

Example

  • Input: s = "abcde", goal = "cdeab"
  • Output: true



풀이

    def rotateString(self, s: str, goal: str) -> bool:
        if s == goal: return True
        
        n = 1
        while n<len(s):
            s = s[1:] + s[0]
            if s == goal: return True
            n += 1
        return False

: 이 문제는 s의 첫 문자를 계속 뒤로 밀어냈을 때 goal과 같은 문자열을 만들어낼 수 있는가를 판단하는 문제였다. 그래서 일단 처음에 두 문자가 같다면 다른 과정 없이 True를 반환시켜주었다. 그 후 같지 않다면 While문을 이용했다. 만약 다시 원래의 문자가 되기 전까지 진행했을 때 아무일도 일어나지 않는다면 while문을 빠져나가게 하기 위해 조건문을 설정하였다. while문 안에서는 슬라이싱을 이용해 첫 글자를 마지막 글자로 삽입해주었다.