Cho một chuỗi kích thước n, viết các chức năng để thực hiện các hoạt động sau trên chuỗi-
Trái [hoặc ngược chiều kim đồng hồ] xoay chuỗi đã cho bằng các phần tử d [trong đó d
- Phải [hoặc theo chiều kim đồng hồ] xoay chuỗi đã cho bằng các phần tử d [trong đó d
Examples:
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"
Phương pháp số 1: Một giải pháp đơn giản là sử dụng chuỗi tạm thời để thực hiện xoay vòng. Đối với vòng quay bên trái, trước tiên, hãy sao chép các ký tự N-D cuối cùng, sau đó sao chép các ký tự D đầu tiên theo chuỗi tạm thời. Để xoay đúng, đầu tiên, sao chép các ký tự D cuối cùng, sau đó sao chép các ký tự N-D. & NBSP;A Simple Solution is to use a temporary string to do rotations. For left rotation, first, copy last n-d characters, then copy first d characters in order to the temporary string. For right rotation, first, copy last d characters, then copy n-d characters.
Chúng ta có thể thực hiện cả hai vòng quay tại chỗ và thời gian O [N] không? & NBSP; Ý tưởng này dựa trên thuật toán đảo ngược để xoay.
The idea is based on a reversal algorithm for rotation.
// Left rotate string s by d [Assuming d