Hướng dẫn how to shift characters in a string in python - cách chuyển ký tự trong chuỗi trong python
Cải thiện bài viết Show 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
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
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
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
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;
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 Mẹo: Sử dụng toán tử Ví dụ: hãy xem xét biến sau
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 -
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 raqjcoes
Cập nhật ngày 16 tháng 10 năm 2021 10:21:11
Bạn có thể sử dụng Shift trên một chuỗi không?Phương thức Shift () là chung chung.Nó chỉ mong đợi giá trị này có thuộc tính chiều dài và các thuộc tính được khóa.Mặc dù các chuỗi cũng giống như mảng, phương pháp này không phù hợp để được áp dụng trên chúng, vì các chuỗi là bất biến.this method is not suitable to be applied on them, as strings are immutable.
'\ T có nghĩa là gì trong Python?Trong các chuỗi Python, dấu gạch chéo ngược là một nhân vật đặc biệt, còn được gọi là nhân vật thoát khỏi lối thoát.Nó được sử dụng để đại diện cho một số ký tự khoảng trắng nhất định: \ \ t, là một tab, \ n, là một dòng mới và là \ r, là một sự trở lại vận chuyển.a tab, “\n” is a new line, and “\r” is a carriage return.
\ R trong ví dụ Python là gì?R có nghĩa là 'chuỗi thô' thông thường, Python sử dụng dấu gạch chéo ngược làm ký tự thoát.Giới thiệu trước định nghĩa chuỗi với 'r' là một cách hữu ích để xác định một chuỗi trong đó bạn cần dấu gạch chéo ngược để trở thành một dấu gạch chéo ngược thực tế và không phải là một phần của mã thoát có nghĩa là một cái gì đó khác trong chuỗi.Raw String'
Normally, Python uses backslashes as escape characters. Prefacing the string definition with 'r' is a useful way to define a string where you need the backslash to be an actual backslash and not part of an escape code that means something else in the string.
Chúng ta có thể thay đổi ký tự chuỗi trong Python không?Chuỗi Python là bất biến (nghĩa là chúng không thể được sửa đổi).they can't be modified). |