Hoán đổi ký tự trong chuỗi python

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách hoán đổi ký tự đầu tiên hoặc bắt đầu và ký tự cuối cùng hoặc kết thúc của một chuỗi trong python. Chúng tôi sẽ lấy chuỗi làm đầu vào từ người dùng. Chương trình sẽ yêu cầu người dùng nhập vào một chuỗi, hoán đổi ký tự đầu và ký tự cuối và in ra chuỗi mới sửa đổi

Chuỗi Python là bất biến, tôi. e. chúng tôi không thể sửa đổi một chuỗi. Nếu muốn hoán đổi ký tự đầu và ký tự cuối, chúng ta không thể đổi trực tiếp các ký tự trong chuỗi. Chúng ta cần tạo một chuỗi khác bằng cách thay đổi các ký tự

Chúng tôi sẽ sử dụng cắt chuỗi để giải quyết vấn đề này. Cắt chuỗi là cách để lấy tất cả các ký tự của chuỗi trong một phạm vi. Chuỗi là một dãy các ký tự và mỗi ký tự có chỉ số riêng. Chỉ mục bắt đầu từ ‘0’ đến ‘độ dài của chuỗi - 1’. Ví dụ: đối với chuỗi 'world', chỉ số của 'w' là '0', chỉ số của 'o' là '1', v.v.

Chúng ta có thể cắt một chuỗi bằng cách chỉ định các số chỉ mục được phân tách bằng dấu hai chấm như '[x. y]’. Ví dụ: đối với chuỗi ‘str’,‘str[2. 4]' sẽ cắt chuỗi từ chỉ mục '2' sang chỉ mục '3'. Lưu ý rằng giá trị thứ hai không phải là chỉ số cuối cùng. Nếu chúng ta chuyển '0' làm giá trị đầu tiên và độ dài của chuỗi làm giá trị thứ hai, nó sẽ trả về cho chúng ta cùng một chuỗi

str = "world"

print[str[0:3]]
print[str[1:4]]

Nó sẽ in

Trong ví dụ trên, câu lệnh in đầu tiên đang in chuỗi con từ chỉ số '0' đến '2'. Câu lệnh in thứ hai đang in từ chỉ mục '1' đến '3'

Chỉ mục đầu tiên và các giá trị chỉ mục cuối cùng là tùy chọn. Nếu chúng tôi không cung cấp chỉ mục đầu tiên, nó sẽ xem xét nó từ chỉ mục '0' và nếu chúng tôi không cung cấp chỉ mục thứ hai, nó sẽ đưa tất cả các ký tự đến cuối bắt đầu từ chỉ mục bắt đầu

str = "world"
print[str[:3]]
print[str[1:]]

Trong ví dụ này, chỉ mục đầu tiên trống cho câu lệnh in đầu tiên và chỉ mục thứ hai trống cho câu lệnh in thứ hai

Chúng ta cũng có thể sử dụng chỉ mục phủ định với chuỗi trong python. Ký tự cuối cùng có thể được truy cập với chỉ số '-1', ký tự cuối cùng thứ hai với '-2', v.v. Ví dụ: đối với chuỗi 'world', 'd' có chỉ số -1, 'l' có chỉ số -2, 'r' có chỉ số -3, v.v.

Chỉ số phủ định cũng có thể được sử dụng để cắt một chuỗi. Để hoán đổi ký tự đầu tiên và ký tự cuối cùng của chuỗi, chúng ta sẽ sử dụng phép cắt với chỉ số âm

chương trình Python

str = input["Enter a string : "]
new_str = str[-1:] + str[1:-1] + str[:1]
print[new_str]

Enter a string : python
nythop

Enter a string : sample
eampls

Enter a string : one line
ene lino

Enter a string : hello world
dello worlh

Giải trình

Chương trình ví dụ trên được sử dụng để hoán đổi ký tự đầu tiên và ký tự cuối cùng của chuỗi 'str'. Chúng tôi đã sử dụng dòng dưới đây để hoán đổi các ký tự trong chuỗi

str[-1:] + str[1:-1] + str[:1]

Hãy phá vỡ nó. str[-1. ]. Nó sẽ trả về tất cả các ký tự từ chỉ mục -1 đến chỉ mục cuối cùng. Vì -1 là chỉ số cuối cùng của một chuỗi, nên nó sẽ thực sự trả về ký tự cuối cùng của chuỗi đã cho str

str[1. -1]. Nó sẽ trả về tất cả các ký tự bắt đầu từ chỉ số 1 đến ký tự trước ký tự có chỉ số -1. i. e. tất cả các ký tự từ chỉ số 1 đến ký tự thứ hai cuối cùng

str[. 1]. Nó sẽ trả lại các ký tự bắt đầu từ chỉ mục bắt đầu cho ký tự trước chỉ mục 1, i. e. nó sẽ trả về ký tự đầu tiên

Như bạn có thể thấy, nối tất cả các ký tự trên sẽ cho chúng ta chuỗi cần thiết. Đối với chuỗi xin chào,

str[-1:] = 'o'
str[1:-1] = 'ell'
str[:1] = 'h'

Phần kết luận

Cắt chuỗi là một cách tuyệt vời để chọn bất kỳ phần nào của chuỗi trong python. Cắt lát có sẵn trong nhiều ngôn ngữ lập trình khác. Tiết kiệm rất nhiều thời gian và công sức cho chúng ta. Lập chỉ mục phủ định là một điều tiện dụng hơn trong chuỗi python. Hãy thử chạy chương trình bằng python3 và để lại một bình luận bên dưới nếu bạn có bất kỳ câu hỏi nào

Trong bài viết này, chúng ta sẽ tìm hiểu cách trả về một chuỗi có hoán đổi ký tự?

Câu hỏi

Nếu bạn được cung cấp một chuỗi, hãy trả về một chuỗi mới sao cho các ký tự đầu tiên và cuối cùng đã được hoán đổi. Ngoài ra, bạn nên xem xét các trường hợp sau

Cho một xâu S có độ dài N, hai số nguyên B và C, nhiệm vụ là duyệt các ký tự bắt đầu từ đầu, hoán đổi một ký tự với ký tự sau C đặt từ nó, i. e. hoán đổi ký tự tại vị trí i và [i + C]%N. Lặp lại quá trình này B lần, tiến lên một vị trí tại một thời điểm. Nhiệm vụ của bạn là tìm Chuỗi cuối cùng sau khi B hoán đổi

ví dụ.  

Input : S = "ABCDEFGH", B = 4, C = 3;
Output:  DEFGBCAH
Explanation:
         after 1st swap: DBCAEFGH
         after 2nd swap: DECABFGH
         after 3rd swap: DEFABCGH
         after 4th swap: DEFGBCAH

Input : S = "ABCDE", B = 10, C = 6;
Output : ADEBC
Explanation:
         after 1st swap: BACDE
         after 2nd swap: BCADE
         after 3rd swap: BCDAE
         after 4th swap: BCDEA
         after 5th swap: ACDEB
         after 6th swap: CADEB
         after 7th swap: CDAEB
         after 8th swap: CDEAB
         after 9th swap: CDEBA
         after 10th swap: ADEBC

Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp

Cách tiếp cận ngây thơ.  

  • Đối với các giá trị lớn của B, cách tiếp cận ngây thơ là lặp B lần, mỗi lần hoán đổi ký tự thứ i với ký tự [i + C]%N-th sẽ dẫn đến thời gian CPU cao
  • Mẹo để giải bài toán này là quan sát chuỗi kết quả sau mỗi N lần lặp, trong đó N là độ dài của chuỗi S
  • Một lần nữa, nếu C lớn hơn hoặc bằng N, thì nó thực sự bằng phần còn lại của C chia cho N
  • Ở đây, hãy coi C nhỏ hơn N

Phương pháp tiếp cận hiệu quả.  

  • Nếu chúng ta quan sát chuỗi được hình thành sau mỗi N lần lặp và hoán đổi liên tiếp [hãy gọi nó là một lần lặp đầy đủ], chúng ta có thể bắt đầu nhận được một mẫu
  • Chúng ta có thể thấy rằng chuỗi được chia thành hai phần. phần đầu tiên có độ dài C bao gồm các ký tự C đầu tiên của S và phần thứ hai bao gồm các ký tự còn lại
  • Hai phần được xoay bởi một số nơi. Phần đầu tiên được xoay sang phải bởi [N % C] vị trí mỗi lần lặp đầy đủ
  • Phần thứ hai được xoay trái bởi vị trí C sau mỗi lần lặp đầy đủ
  • Chúng ta có thể tính số lần lặp đầy đủ f bằng cách chia B cho N
  • Vì vậy, phần đầu tiên sẽ được xoay trái bởi [ N % C ] * f. Giá trị này có thể vượt ra ngoài C và do đó, nó thực sự là [ [ N % C ] * f ] % C, i. e. phần đầu tiên sẽ được xoay bởi [ [ N % C ] * f ] % C chỗ còn lại
  • Phần thứ hai sẽ được xoay trái theo vị trí C * f. Vì, giá trị này có thể vượt quá độ dài của phần thứ hai là [ N – C ], nó thực sự là [ [ C * f ] % [ N – C ] ], i. e. phần thứ hai sẽ được xoay theo [ [ C * f ] % [ N – C ] ] vị trí còn lại
  • Sau f lần lặp đầy đủ, có thể vẫn còn một số lần lặp lại để hoàn thành bước lặp B. Giá trị này là B % N nhỏ hơn N. Chúng ta có thể làm theo cách tiếp cận ngây thơ trên các lần lặp lại còn lại này sau f lần lặp đầy đủ để nhận được chuỗi kết quả

Thí dụ
s = ABCDEFGHIJK;
các bộ phận. ABCDEFGHIJK
sau 1 lần lặp đầy đủ. DABC IJKEFGH
sau 2 lần lặp đầy đủ. CDAB FGHIJKE
sau 3 lần lặp đầy đủ. BCDA JKEFGHI
sau 4 lần lặp đầy đủ. ABCD GHIJKEF
sau 5 lần lặp đầy đủ. DABC KEFGHIJ
sau 6 lần lặp đầy đủ. CDAB HIJKEFG
sau 7 lần lặp đầy đủ. BCDA EFGHIJK
sau 8 lần lặp đầy đủ. ABCDIJKEFGH
 

Dưới đây là việc thực hiện phương pháp

Python3




# Python3 program to find new after swapping 

# characters at position i and i + c 

# b times, each time advancing one 

# position ahead 

 

# Method to find the required string 

def swapChars[s, c, b]:

CADEFGHIJKB
0

CADEFGHIJKB
1_______7_______2

CADEFGHIJKB
1_______7_______4_______7_______5
CADEFGHIJKB
6_______7_______7

CADEFGHIJKB
0

CADEFGHIJKB
1_______41_______0

CADEFGHIJKB
1_______41_______2

CADEFGHIJKB
1_______41_______4

CADEFGHIJKB
1_______41_______6
CADEFGHIJKB
5 # Python3 program to find new after swapping 6# Python3 program to find new after swapping 9
CADEFGHIJKB
4

CADEFGHIJKB
0

CADEFGHIJKB
1_______42_______3 # characters at position i and i + c 4
CADEFGHIJKB
5
CADEFGHIJKB
5 # characters at position i and i + c 7# characters at position i and i + c 8

# characters at position i and i + c 9

# b times, each time advancing one 0____43_______1

# b times, each time advancing one 0____43_______3 # b times, each time advancing one 4

# characters at position i and i + c 9

CADEFGHIJKB
1_______43_______7_______7_______5 # b times, each time advancing one 9# position ahead 0# position ahead 1 # position ahead 2

CADEFGHIJKB
1_______44_______4_______7_______5 # position ahead 6# Python3 program to find new after swapping 9
CADEFGHIJKB
4

CADEFGHIJKB
0

CADEFGHIJKB
1_______45_______1

CADEFGHIJKB
1____45_______3

CADEFGHIJKB
1_______45_______5
CADEFGHIJKB
5  7_______42_______7  9# Method to find the required string 0 # Method to find the required string 1_______41_______9 # Method to find the required string 3# Method to find the required string 4 # Method to find the required string 5

CADEFGHIJKB
0

CADEFGHIJKB
1____46_______8

CADEFGHIJKB
1____47_______0

CADEFGHIJKB
1_______47_______2
CADEFGHIJKB
5 def4_______46_______0 # Method to find the required string 1# Python3 program to find new after swapping 9 # Method to find the required string 3# Method to find the required string 4 # Method to find the required string 5

Chúng ta có thể hoán đổi các ký tự trong một chuỗi không?

Như chúng ta đã biết, Object của String trong Java là bất biến [i. e. chúng tôi không thể thực hiện bất kỳ thay đổi nào sau khi nó được tạo]. Để sửa đổi chuỗi được lưu trữ trong đối tượng String, chúng ta sao chép nó vào một mảng ký tự, StringBuffer, v.v. và thực hiện sửa đổi trên đối tượng sao chép .

Chúng ta có thể trao đổi chuỗi trong Python không?

Chuỗi Python. hoán đổi [] . Ở đây string_name là chuỗi có các trường hợp sẽ được hoán đổi. Tham số. Phương thức hoán đổi [] không nhận bất kỳ tham số nào. The string swapcase[] method converts all uppercase characters to lowercase and vice versa of the given string, and returns it. Here string_name is the string whose cases are to be swapped. Parameter: The swapcase[] method does not takes any parameter.

Có chức năng hoán đổi trong Python không?

Có hàm hoán đổi trong Python không? . Nhưng nếu vì bất kỳ lý do gì bạn cần một cái, bạn chỉ cần tạo nó bằng cú pháp hoán đổi - a, b = b, a. No, there's no built-in function in Python that could be used to swap values of variables. But if for any reason you need one, you can simply build it using the swap syntax - a, b = b, a .

Trao đổi [] có nghĩa là gì trong Python?

Trăn. đổi chỗ hai biến . Nói chung, điều này được thực hiện với dữ liệu trong bộ nhớ. Phương pháp đơn giản nhất để hoán đổi hai biến là sử dụng biến tạm thời thứ ba. xác định nhiệt độ trao đổi [a, b]. = một một. = bb. = nhiệt độ. mutually exchanging the values of the variables. Generally, this is done with the data in memory. The simplest method to swap two variables is to use a third temporary variable : define swap[a, b] temp := a a := b b := temp.

Chủ Đề