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

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 : sforgeeksgeek
1
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
2

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
3=
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
5

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
6=
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
8

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
9=
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 : sforgeeksgeek
8__

[2, 1], 3, 2
1
[2, 1], 3, 2
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))
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 : sforgeeksgeek
1
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
3
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, 2
9

print(

qjcoes
2
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
1
qjcoes
4
qjcoes
5

Đầ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 : sforgeeksgeek
1
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
2

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
3=
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
5

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
6=
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
8

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
9=
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 : sforgeeksgeek
8__

[2, 1], 3, 2
1
[2, 1], 3, 2
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))
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 : sforgeeksgeek
1
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
3
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, 2
9

print(

qjcoes
2
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
1
qjcoes
4
qjcoes
5

Đầ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= =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))
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=7
O(n)

The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
9= 'geeksforgeeks'0
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek
1 'geeksforgeeks'2
O(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 print0 tạo ra chuỗi print1, print2, print3, print4, print3 khi chúng ta chuyển bởi 2 vị trí sang phải (print6). Khi chúng ta chuyển bởi 2 vị trí sang trái (print7), trình tự kết quả sẽ là print3, print1, print2, print3, print4.

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

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ậ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

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).