Cải thiện bài viết
Lưu bài viết
Đôi khi, trong khi làm việc với các chuỗi Python, chúng ta có thể gặp vấn đề trong đó chúng ta có cả số lần xoay bên phải và bên trái trong chuỗi và muốn biết điều kiện kết quả của chuỗi. Loại vấn đề này xảy ra trong chương trình cạnh tranh. Hãy thảo luận về những cách nhất định trong đó nhiệm vụ này có thể được thực hiện. Phương pháp số 1: Sử dụng phép nhân chuỗi + Chuỗi cắt kết hợp các hàm trên có thể được sử dụng để thực hiện tác vụ này. Trong đó, chúng tôi nhiều chuỗi ba lần, thực hiện kết nối và cắt chuỗi chọn lọc để nhận kết quả cần thiết. & NBSP;Method #1 : Using String multiplication + string slicing The combination of above functions can be used to perform this task. In this, we multiple string thrice, perform the concatenation and selectively slice string to get required result.
Python3
test_str
=
'geeksforgeeks'
print
[
____10
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek1
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek2
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek3
=
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek5
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek6
=
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek8
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek9
=
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]1
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]2
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek8__
[2, 1], 3, 21
[2, 1], 3, 22
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]2
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]5
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]6
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek1
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek3
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]9
[2, 1], 3, 29
print
[
qjcoes2
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek1
qjcoes4
qjcoes5
Đầu ra: & nbsp;
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
& nbsp; Phương pháp số 2: Sử dụng toán tử % và cắt chuỗi Kết hợp các chức năng trên cũng có thể được sử dụng để thực hiện nhiệm vụ này. Trong đó, chúng tôi tìm thấy sự khác biệt của Mod of Rotation với độ dài để tính toán vị trí chuỗi. & NBSP;Method #2 : Using % operator and string slicing The combination of above functionalities can also be used to perform this task. In this, we find the mod of rotation difference with length to compute the string position.
Python3
test_str
=
'geeksforgeeks'
print
[
____10
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek1
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek2
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek3
=
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek5
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek6
=
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek8
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek9
=
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]1
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]2
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek8__
[2, 1], 3, 21
[2, 1], 3, 22
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]2
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]5
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]6
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek1
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek3
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]9
[2, 1], 3, 29
print
[
qjcoes2
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek1
qjcoes4
qjcoes5
Đầu ra: & nbsp;
The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
& nbsp; Phương pháp số 2: Sử dụng toán tử % và cắt chuỗi Kết hợp các chức năng trên cũng có thể được sử dụng để thực hiện nhiệm vụ này. Trong đó, chúng tôi tìm thấy sự khác biệt của Mod of Rotation với độ dài để tính toán vị trí chuỗi. & NBSP;
=
0=
=
2def solve[s, shifts]:
start = ord["a"]
res = [ord[i] - start for i in s]
for i in range[len[shifts] - 2, -1, -1]:
shifts[i] += shifts[i + 1]
for i in range[len[s]]:
c = [res[i] + shifts[i]] % 26
res[i] = chr[c + start]
return "".join[res]
s = "tomato"
shifts = [2, 5, 2, 3, 7, 4]
print[solve[s, shifts]]
9 =
4=
5 def solve[s, shifts]:
start = ord["a"]
res = [ord[i] - start for i in s]
for i in range[len[shifts] - 2, -1, -1]:
shifts[i] += shifts[i + 1]
for i in range[len[s]]:
c = [res[i] + shifts[i]] % 26
res[i] = chr[c + start]
return "".join[res]
s = "tomato"
shifts = [2, 5, 2, 3, 7, 4]
print[solve[s, shifts]]
5=
7O[n]
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
9=
'geeksforgeeks'
0The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
1 'geeksforgeeks'
2O[n]
Bạn sẽ tạo một trình tạo, đưa ra một chuỗi, tạo ra một chuỗi các ký tự cấu thành được dịch chuyển bởi một số vị trí được chỉ định 'geeksforgeeks'
9. Ví dụ: chuỗi print
0 tạo ra chuỗi print
1, print
2, print
3, print
4, print
3 khi chúng ta chuyển bởi 2 vị trí sang phải [print
6]. Khi chúng ta chuyển bởi 2 vị trí sang trái [print
7], trình tự kết quả sẽ là print
3, print
1, print
2, print
3, print
4.
Mẹo: Sử dụng toán tử =
5 để đạp xe qua các chỉ số hợp lệ. Áp dụng nó vào một số dương hoặc âm cho phần còn lại không âm, có thể hữu ích khi chuyển chỉ mục của bạn.
Ví dụ: hãy xem xét biến sau [
4, giữ một chuỗi [
5 ký tự:
[
6 [do đó,[
7 là[
8][
9 [do đó,The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
00 làThe original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
01]The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
02 [do đó,The original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
03 làThe original string is : geeksforgeeks The string after rotation is : sforgeeksgeek
04]
Giả sử chúng ta có một chuỗi chữ thường và một danh sách các số nguyên gọi là ca có độ dài giống như chiều dài của s. Ở đây mỗi phần tử theo ca [i] cho biết nó sẽ thay đổi các chữ I + 1 đầu tiên của s bằng các vị trí thay đổi [i]. Nếu thay đổi giao nhau 'z', nó sẽ được kết thúc thành 'a'. Chúng ta phải tìm chuỗi kết quả sau khi áp dụng ca cho s.
Vì vậy, nếu đầu vào giống như S = "Tomato" thay đổi = [2, 5, 2, 3, 7, 4], thì đầu ra sẽ là "QJCOE" vì vậy, sau khi chuyển vị trí ký tự đầu tiên, nó sẽ là 'T 'To' V ', vì vậy chuỗi là "Vomato", sau hai ký tự đầu tiên đó là 5 vị trí. Chuỗi bây giờ sẽ là "atmato" như thế cuối cùng chuỗi sẽ là "QJCOE".
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -
- Bắt đầu: = ASCII của "A"
- res: = một danh sách ascii của [i - bắt đầu] cho mỗi i trong s
- Đối với I trong phạm vi kích thước của ca - 2 đến 0, giảm 1, làm
- ca làm việc [i]: = dịch chuyển [i] + thay đổi [i + 1]
- Đối với tôi trong phạm vi 0 đến kích thước của S - 1, làm
- C: = [res [i] + dịch chuyển [i]] mod 26
- res [i]: = ký tự với ascii [c + start]
- Tham gia các chữ cái res vào một chuỗi và trả về
Thí dụ
Hãy cho chúng tôi xem việc thực hiện sau đây để hiểu rõ hơn -
def solve[s, shifts]: start = ord["a"] res = [ord[i] - start for i in s] for i in range[len[shifts] - 2, -1, -1]: shifts[i] += shifts[i + 1] for i in range[len[s]]: c = [res[i] + shifts[i]] % 26 res[i] = chr[c + start] return "".join[res] s = "tomato" shifts = [2, 5, 2, 3, 7, 4] print[solve[s, shifts]]
Đầu vào
[2, 1], 3, 2
Đầu ra
qjcoes
Cập nhật ngày 16 tháng 10 năm 2021 10:21:11
- Câu hỏi và câu trả lời liên quan
- Chuỗi cuối cùng sau khi thực hiện các hoạt động đã cho trong C ++
- Chương trình C ++ để đếm số nhân vật cuối cùng ở đó sau khi gõ n ký tự vào một nhà văn điên rồ
- Trạng thái cuối cùng của chuỗi sau khi sửa đổi trong Python
- Chương trình tìm chuỗi sau khi xóa các ký tự trùng lặp liên tiếp trong Python
- Chương trình kiểm tra một chuỗi có thể được chuyển đổi sang khác bằng cách chuyển các ký tự theo chiều kim đồng hồ trong Python
- Chương trình tìm thấy các trạng thái cuối cùng của tên lửa sau khi va chạm ở Python
- Chương trình Python để đếm số lượng ký tự chữ thường trong một chuỗi
- Chuyển vị trí của các ký tự đã chọn trong một chuỗi trong JavaScript
- Chương trình tìm chuỗi sau khi xóa K ký tự trùng lặp liên tiếp trong Python
- Chương trình Python để trích xuất các chuỗi với số lượng ký tự ít nhất từ danh sách khác
- Chương trình C ++ để đếm số lượng ký tự sẽ được xóa để có được chuỗi tốt
- Số lượng ký tự thường trong một chuỗi trong chương trình Python
- Chương trình xóa các ký tự trùng lặp khỏi một chuỗi đã cho trong Python
- Chuỗi được nối với các ký tự không phổ biến trong chương trình Python
- Chương trình để đếm số lượng palindromes có kích thước k có thể được hình thành từ các ký tự chuỗi đã cho trong Python