문자열 회전: 한 단어가 다른 문자열에 포함되어 있는 판별하는 isSubstring이라는 메서드가 있다고 하자. s1과 s2의 두 문자열이 주어졌고, s2가 s1을 회전시킨 결과인지 판별하고자 한다(가령 'waterbottle'은 'erbottlewat'을 회전시켜 얻을 수 있는 문자열이다). isSubstring 메서드를 한 번만 호출해서 판별할 수 있는 코드를 작성하라.
그냥 문자열 length 만큼 한칸씩 돌려가면서 일치하는 경우가 있는지 확인하면 되는거 아닌가 생각이 들었다.
def is_substring(a, b):
char_array = list(b)
for i in range(len(char_array)):
char = char_array.pop(0)
char_array.append(char)
if a == ''.join(char_array):
return True
return False
# 예시 입력
a = 'waterbottle'
b = 'erbottlewat'
print(is_substring(a, b))
range
class range(stop)
class range(start, stop, step=1)
Rather than being a function, range is actually an immutable sequence type, as documented in Ranges and Sequence Types — list, tuple, range.
starting from 0 by default, and increments by 1 (by default)
'스터디-공부 > 알고리즘' 카테고리의 다른 글
단방향 연결리스트의 중간 노드 삭제 (0) | 2023.08.24 |
---|---|
정렬되어있지 않은 연결리스트의 중복 없애기 (0) | 2023.08.23 |
행렬 90도 회전 (0) | 2023.08.21 |
문자열 매칭 수 계산 (0) | 2023.08.19 |
문자열에 들어 있는 모든 공백을 '%20'으로 바꿔 주는 메소드를 작성하라. (0) | 2023.08.18 |
댓글