กำหนดสตริง งานของเราคือตรวจสอบว่าครึ่งหนึ่งของสตริงมีชุดตัวอักษรเหมือนกันหรือไม่ แก้ปัญหานี้โดยการแบ่งสตริงจากกลางได้สองครึ่ง แล้วตรวจสอบว่าแต่ละครึ่งมีชุดตัวอักษรเหมือนกันหรือไม่ ถ้าความยาวสตริงเป็นคี่ ให้ละเลยตัวอักษรกลางและตรวจสอบส่วนที่เหลือ
อัลกอริทึม
ขั้นตอนที่ 1: กำหนดสตริง ขั้นตอนที่ 2: แบ่งสตริงอินพุตเป็นสองส่วน ขั้นตอนที่ 3: แปลงทั้งสองส่วนเป็นดิกชันนารีด้วยเมธอด Counter(iterator) แต่ละดิกชันนารีมีตัวอักษรเป็นคีย์และความถี่เป็นค่า ขั้นตอนที่ 4: เปรียบเทียบดิกชันนารีทั้งสอง ใช้ == ตรวจสอบคีย์และค่าของแต่ละคีย์ ถ้าทั้งคู่ตรงกัน แสดงว่าครึ่งทั้งสองมีชุดตัวอักษรเหมือนกัน
โค้ดตัวอย่าง
from collections import Counter
def checkhalves(input):
length = len(input)
if (length % 2 != 0):
first = input[0:int(length / 2)]
second = input[(int(length / 2)) + 1:]
else:
first = input[0:int(length / 2)]
second = input[int(length / 2):]
if Counter(first) == Counter(second):
print("ทั้งสองครึ่งเหมือนกัน")
else:
print("ทั้งสองครึ่งไม่เหมือนกัน")
# โปรแกรมหลัก
if __name__ == "__main__":
input = input("ป้อนสตริง ")
checkhalves(input)
ผลลัพธ์
ป้อนสตริง abba ทั้งสองครึ่งเหมือนกัน