Dịch (xoay) một chuỗi
Bạn sẽ tạo một generator mà, với một chuỗi đầu vào, sẽ sinh ra dãy các ký tự cấu thành được dịch chuyển theo số vị trí shift cho trước. Ví dụ, chuỗi 'sushi' sinh ra dãy 'h', 'i', 's', 'u', 's' khi dịch sang phải 2 vị trí (shift = 2). Khi dịch sang trái 2 vị trí (shift = -2), dãy thu được sẽ là 's', 'h', 'i', 's', 'u'.
Gợi ý: dùng toán tử % để quay vòng trong các chỉ số hợp lệ. Áp dụng với số dương hay âm đều cho phần dư không âm, điều này hữu ích khi bạn dịch chuyển chỉ số.
Ví dụ, xét biến string = 'python', chứa một chuỗi 6 ký tự:
2 % 6 = 2(vì vậy,string[2 % 6]làt)0 % 6 = 0(vì vậy,string[0 % 6]làp)-2 % 6 = 4(vì vậy,string[-2 % 6]lào)
Bài tập này là một phần của khóa học
Luyện tập câu hỏi phỏng vấn lập trình bằng Python
Hướng dẫn bài tập
- Lặp qua các chỉ số của một chuỗi bằng biến
len_stringđã cho. - Tìm ký tự tương ứng với chỉ số sau khi thực hiện phép dịch.
- Tạo một generator dịch chuỗi
'DataCamp'sang phải 3 vị trí (tức"ampDataC"). - Tạo chuỗi mới bằng generator và in ra.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)