Bắt đầu ngayBắt đầu miễn phí

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]t)
  • 0 % 6 = 0 (vì vậy, string[0 % 6]p)
  • -2 % 6 = 4 (vì vậy, string[-2 % 6]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

Xem khóa học

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)
Chỉnh sửa và Chạy Mã