문자열 시프트하기
이제 주어진 문자열에 대해 지정한 만큼 위치를 shift 시켜 구성 문자들의 시퀀스를 만들어 내는 제너레이터를 작성해 볼 거예요. 예를 들어 문자열 'sushi'를 오른쪽으로 2칸 이동시키면(shift = 2), 생성되는 시퀀스는 'h', 'i', 's', 'u', 's'가 돼요. 왼쪽으로 2칸 이동시키면(shift = -2), 결과 시퀀스는 's', 'h', 'i', 's', 'u'가 됩니다.
Tip: 유효한 인덱스를 순환하려면 % 연산자를 사용하세요. 양수나 음수에 적용해도 음수가 아닌 나머지를 얻을 수 있어, 인덱스를 이동할 때 유용합니다.
예를 들어, 6개의 문자를 가진 문자열을 담고 있는 변수 string = 'python'을 생각해 봅시다:
2 % 6 = 2(따라서string[2 % 6]는t)0 % 6 = 0(따라서string[0 % 6]는p)-2 % 6 = 4(따라서string[-2 % 6]는o)
이 연습은 강의의 일부입니다
Python으로 코딩 인터뷰 문제 연습하기
연습 안내
- 제공된
len_string변수를 사용해 문자열의 인덱스를 순회하세요. - 시프트를 수행했을 때 해당 인덱스에 대응하는 문자를 찾으세요.
- 문자열
'DataCamp'를 오른쪽으로 3칸 시프트하는(즉,"ampDataC") 제너레이터를 만드세요. - 제너레이터를 사용해 새로운 문자열을 만들고 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
def shift_string(string, shift):
len_string = len(string)
# Loop over the indices of a string
for idx in ____:
# Find which character will correspond to the index.
____ ____[____]
# Create a generator
gen = ____
# Create a new string using the generator and print it out
string_shifted = ''.____
print(string_shifted)