Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะย้อนกลับสตริงในโปรแกรม Python ได้อย่างไร


Python ไม่มีฟังก์ชันในตัวเพื่อย้อนกลับสตริง ดังนั้น เราจำเป็นต้องใช้ตรรกะของเราเองเพื่อย้อนกลับสตริง

เราจะย้อนกลับสตริงโดยใช้วิธีการต่างๆ

การใช้ FOR ลูป

แนวคิดเบื้องหลังวิธีนี้คือการใช้การวนรอบย้อนกลับโดยเริ่มจากดัชนีสุดท้ายของสตริงจนถึงดัชนีที่ 0 ในการวนซ้ำแต่ละครั้ง เราจะเพิ่มอักขระของสตริงเพื่อเก็บสตริงที่ย้อนกลับเมื่อสิ้นสุดการวนซ้ำ

มาดูขั้นตอนทั่วไปที่เราจะปฏิบัติตามกัน -

  • a:=สตริงใหม่

  • วนซ้ำจากดัชนีสุดท้ายของสตริงถึงดัชนีที่ 0 และลดลง 1 a=a+character ที่ดัชนีปัจจุบัน

  • กลับ

ตัวอย่าง

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

ผลลัพธ์

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

การดำเนินการตามแนวทางข้างต้นอย่างชาญฉลาดมีดังต่อไปนี้ -

เราใช้สำหรับแต่ละลูปและต่อท้ายอักขระแต่ละตัวที่จุดเริ่มต้นของสตริงใหม่

การต่อท้ายอักขระแต่ละตัวของสตริงใหม่ทำให้เราได้สตริงที่ย้อนกลับ แทนที่จะใช้ลูปปกติ เราสามารถใช้ลูปปกติจากดัชนี 0 ถึงความยาวของสตริงได้

ตัวอย่าง

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

ผลลัพธ์

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

การใช้งานขณะวนซ้ำ

เราสามารถแทนที่ลูปด้วย while loop เราจะวนซ้ำ while loop จากดัชนีสุดท้ายไปที่ดัชนีที่ 0 และเชื่อมอักขระแต่ละตัวที่ดัชนีปัจจุบันไปที่จุดสิ้นสุดของสตริงใหม่เพื่อรับสตริงที่กลับกัน

ตัวอย่าง

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

ผลลัพธ์

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

การใช้ไวยากรณ์ Extended Slice

ไวยากรณ์สไลซ์แบบขยายมีสามพารามิเตอร์ [stars,end,step] การไม่ให้ฟิลด์เป็นจุดเริ่มต้นและจุดสิ้นสุดโดยค่าเริ่มต้นหมายถึง 0 เมื่อเริ่มต้นและความยาวของสตริงเป็นสิ้นสุด การระบุขั้นตอนเป็น '-1' หมายถึงการเริ่มจากจุดสิ้นสุดและหยุดที่จุดเริ่มต้น ดังนั้นเราจะได้สตริงที่กลับกัน

ตัวอย่าง

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

ผลลัพธ์

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

เราสามารถย้อนกลับฟังก์ชันโดยใช้ reversed() แต่ฟังก์ชันย้อนกลับจะคืนค่าตัววนซ้ำแบบย้อนกลับ ดังนั้น เราจำเป็นต้องรวมอักขระของตัววนซ้ำที่ย้อนกลับเพื่อให้ได้สตริง

ใช้ join และ reverse()

ตัวอย่าง

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

ผลลัพธ์

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

การใช้การเรียกซ้ำ

เราสามารถย้อนกลับสตริงโดยใช้การเรียกซ้ำ เราจะเรียกฟังก์ชันย้อนกลับแบบเรียกซ้ำโดยส่งสตริงจากดัชนี 1 ไปยังรายการสุดท้าย ดังนั้น เราจะลดความยาวของสตริงลงอย่างต่อเนื่องเป็น 0 ซึ่งเป็นตัวพิมพ์พื้นฐานของเราในการส่งคืนสตริง ดังนั้น ในการเรียกซ้ำแต่ละครั้ง เราจะแบ่งสตริงจากดัชนี 1 ไปเป็นรายการสุดท้าย และเชื่อมอักขระตัวแรกที่ส่วนท้ายของสตริงที่แบ่งส่วน

ตัวอย่าง

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

ผลลัพธ์

INPUT : TutorialsPoint
OUTPUT : tnioPslairotuT

นี่เป็นวิธีการบางอย่างในการย้อนกลับสตริงใน python เราได้พูดถึงห้าวิธีในการย้อนกลับสตริงใน Python แล้ว

วิธีใดเร็วและดีที่สุดในการใช้

วิธีที่รวดเร็วและดีที่สุดในการย้อนกลับสตริงคือการใช้ Slicing (วิธีที่ 3) มันให้ผลลัพธ์ที่เร็วที่สุดในบรรดาวิธีการทั้งหมดในการย้อนกลับสตริงใน python วิธีนี้ใช้งานง่ายมาก เนื่องจากมีโค้ดเพียง 1 บรรทัด และเราไม่จำเป็นต้องใช้ตรรกะใดๆ จากฝั่งของเรา