เราสามารถแยกสายยาวออกจากตรงกลางและตรวจสอบว่าทั้งสองส่วนเท่ากันหรือไม่ สตริงอินพุตอาจมีอักขระเป็นเลขคี่หรือคู่ หากมีจำนวนอักขระเป็นเลขคู่ เราจะแบ่งครึ่งทั้งสองส่วนโดยใช้ความยาวครึ่งหนึ่ง แต่ถ้าจำนวนอักขระเป็นเลขคี่ เราจะเพิกเฉยต่ออักขระที่อยู่ตรงกลางสุดแล้วเปรียบเทียบสองส่วนที่เหลือ
ในโปรแกรมด้านล่าง เราสร้างสองส่วนของอินพุตสตริงด้วยตรรกะด้านบน จากนั้น
ตัวอย่าง
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