เราสามารถแยกสายยาวออกจากตรงกลางและตรวจสอบว่าทั้งสองส่วนเท่ากันหรือไม่ สตริงอินพุตอาจมีอักขระเป็นเลขคี่หรือคู่ หากมีจำนวนอักขระเป็นเลขคู่ เราจะแบ่งครึ่งทั้งสองส่วนโดยใช้ความยาวครึ่งหนึ่ง แต่ถ้าจำนวนอักขระเป็นเลขคี่ เราจะเพิกเฉยต่ออักขระที่อยู่ตรงกลางสุดแล้วเปรียบเทียบสองส่วนที่เหลือ
ในโปรแกรมด้านล่าง เราสร้างสองส่วนของอินพุตสตริงด้วยตรรกะด้านบน จากนั้น
ตัวอย่าง
from collections import Counter def comparehalves(input_string): str_len = len(input_string) # If number of characyes is odd # ignore the middle character if (str_len % 2 != 0): left = input_string[0:int(str_len / 2)] right = input_string[(int(str_len / 2)) + 1:] else: left = input_string[0:int(str_len / 2)] right = input_string[int(str_len / 2):] # Convert the halves into lists # and sort them l1 = list(left) l1.sort() l2 = list(right) l2.sort() if l1 == l2: print ("Same character in both halves") else: print ("Both halves are different ") in_string = input("Enter String: ") comparehalves(in_string)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
# Run1 Enter String: Tutorials Both halves are different # Run2 Enter String: TutTut Same character in both halves