- Date : 2021.12.05(일)
- Time : 10분
- 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.
- 1 <= s.length, goal.length <= 100
- s and goal consist of lowercase English letters.
- 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문 안에서는 슬라이싱을 이용해 첫 글자를 마지막 글자로 삽입해주었다.