Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để đảo ngược một chuỗi trong chương trình Python?

Python không có chức năng tích hợp để đảo ngược một chuỗi. Do đó, chúng ta cần triển khai logic của riêng mình để đảo ngược một chuỗi.

Chúng tôi sẽ đảo ngược một chuỗi bằng các phương pháp khác nhau.

Sử dụng Vòng lặp FOR

Ý tưởng đằng sau phương pháp này là sử dụng một vòng lặp ngược lại bắt đầu từ chỉ mục cuối cùng của chuỗi đến chỉ mục thứ 0. Ở mỗi lần lặp, chúng tôi sẽ thêm các ký tự của chuỗi để giữ chuỗi đã đảo ngược ở cuối các lần lặp.

Hãy xem xét quy trình chung mà chúng tôi sẽ làm theo -

  • a:=chuỗi mới

  • vòng lặp từ chỉ mục cuối cùng của chuỗi đến chỉ mục thứ 0 và giảm 1 ký tự a =a + ở chỉ mục hiện tại

  • trả lại một

Ví dụ

def reverse(s):
   a=""
   last_index=len(s)-1
   for i in range(last_index,-1,-1):
      a=a+s[i]
   return a
string="TutorialsPoint"
print(reverse(string))

Đầu ra

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

Cách triển khai thông minh của phương pháp trên như sau -

Ở đây, chúng tôi sử dụng cho mỗi vòng lặp và nối mỗi ký tự vào đầu chuỗi mới.

Việc thêm mỗi ký tự của chuỗi mới sẽ cho chúng ta chuỗi đảo ngược. Thay vì cho mỗi vòng lặp, chúng ta có thể sử dụng vòng lặp bình thường từ chỉ số 0 đến độ dài của chuỗi.

Ví dụ

def reverse(s):
   a=""
   for i in s:
      a=i+a
   return a
string="TutorialsPoint"
print(reverse(string))

Đầu ra

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

Sử dụng Vòng lặp Trong khi

Chúng ta có thể thay thế vòng lặp for bằng vòng lặp while Chúng tôi sẽ lặp lại vòng lặp while từ chỉ mục cuối cùng đến chỉ mục thứ 0 và nối từng ký tự ở chỉ mục hiện tại với cuối chuỗi mới để thu được chuỗi đảo ngược.

Ví dụ

def reverse(s):
   a=""
   i=len(s)-1
   while(i>=0):
      a=a+s[i]
      i-=1
   return a
string="TutorialsPoint"
print(reverse(string))

Đầu ra

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

Sử dụng cú pháp Phần mở rộng

Cú pháp lát cắt mở rộng có ba tham số, [bắt đầu, kết thúc, bước]. Theo mặc định, không có trường nào là bắt đầu và kết thúc có nghĩa là 0 là bắt đầu và độ dài của chuỗi là kết thúc. Chỉ định bước là '-1' có nghĩa là bắt đầu từ cuối và dừng ở đầu. Do đó, chúng tôi nhận được chuỗi đảo ngược.

Ví dụ

def reverse(s):
   a=s[::-1]
   return a
string="TutorialsPoint"
print(reverse(string))
Using join and reversed()

Đầu ra

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

Chúng ta có thể đảo ngược chức năng bằng cách sử dụng reverseed (). Nhưng hàm đảo ngược trả về trình lặp đã đảo ngược. Do đó, chúng ta cần nối các ký tự của trình lặp đã đảo ngược để thu được một chuỗi.

Sử dụng phép nối và đảo ngược ()

Ví dụ

def reverse(s):
   a="".join(reversed(s))
   return a
string="TutorialsPoint"
print(reverse(string))

Đầu ra

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

Sử dụng đệ quy

Chúng ta có thể đảo ngược một chuỗi bằng cách sử dụng đệ quy Chúng ta sẽ gọi một cách đệ quy hàm đảo ngược chuyển chuỗi từ chỉ số 1 đến chỉ số cuối cùng. Do đó, chúng ta sẽ liên tục giảm độ dài của chuỗi về phía 0, đây là trường hợp cơ bản của chúng ta để trả về chuỗi. Do đó, tại mỗi lần gọi đệ quy, chúng ta cắt chuỗi từ chỉ mục 1 đến chỉ số cuối cùng và nối ký tự đầu tiên vào cuối chuỗi đã cắt.

Ví dụ

def reverse(s):
   if(len(s)==0):
      return s
   else:
      return reverse(s[1:])+s[0]
string="TutorialsPoint"
print(reverse(string))

Đầu ra

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

Đây là một số phương pháp để đảo ngược một chuỗi trong python. Chúng ta đã thảo luận về năm phương pháp khác nhau để đảo ngược một chuỗi trong Python.

Phương pháp nào nhanh nhất và tốt nhất để sử dụng?

Phương pháp nhanh nhất và tốt nhất để sử dụng để đảo ngược một chuỗi là sử dụng Slicing (Phương pháp 3). Nó cho kết quả nhanh nhất trong số tất cả các phương pháp để đảo ngược một chuỗi trong python. Phương pháp này rất dễ thực hiện vì nó chỉ có 1 dòng mã và chúng tôi không cần thực hiện bất kỳ logic nào từ phía chúng tôi.