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 บรรทัด และเราไม่จำเป็นต้องใช้ตรรกะใดๆ จากฝั่งของเรา