ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาและพิมพ์แอนนาแกรมโดยใช้ รายการ และ พจนานุกรม . เรามีแนวทางที่แตกต่างกันออกไปในทุกปัญหา พยายามเขียนโค้ดโดยไม่ทำตามบทช่วยสอน หากคุณไม่สามารถสร้างแนวคิดใดๆ ในการเขียนตรรกะได้ ให้ทำตามขั้นตอนด้านล่าง
อัลกอริทึม
<ก่อน>1. เริ่มต้นรายการสตริง2. เริ่มต้นพจนานุกรมเปล่า.3. วนซ้ำผ่านรายการสตริง 3.1. จัดเรียงสตริงและตรวจสอบว่ามีอยู่ในพจนานุกรมเป็นคีย์หรือไม่ 3.1.1. หากสตริงที่จัดเรียงมีพจนานุกรมเป็นคีย์อยู่แล้ว ให้ผนวกสตริงเดิมเข้ากับคีย์ 3.2 อื่น ๆ แมปรายการว่างที่มีสตริงที่เรียงลำดับเป็นคีย์และผนวกต้นฉบับกับมัน4. เริ่มต้น string.5 ว่าง ทำซ้ำผ่านรายการพจนานุกรม 5.1. เชื่อมค่าทั้งหมดเข้ากับ string.6 ว่าง พิมพ์สตริงมาเขียนโค้ดสำหรับอัลกอริทึมด้านบนกัน
ตัวอย่าง
## การเริ่มต้นรายการ stringsstrings =["apple", "orange", "grapes", "pear", "peach"]## การเริ่มต้นพจนานุกรมเปล่า ={}## วนซ้ำผ่านรายการสตริงสำหรับสตริง ในสตริง:## การเรียงลำดับคีย์สตริง ="".join(sorted(สตริง)) ## ตรวจสอบว่าคีย์มีอยู่ใน dict หรือไม่ว่าสตริงใน anagrams.keys():## ต่อท้ายสตริงเดิมกับคีย์ anagrams[key].append(string) else:## การแมปรายการว่างไปยังคีย์ anagrams[key] =[] ## การต่อท้ายสตริงไปยังคีย์ anagrams[key].append(string)## การทำให้สตริงว่างเป็นผลลัพธ์ =""## วนซ้ำผ่านดิกชันนารีสำหรับคีย์ ค่าใน anagrams.items():## ต่อท้ายค่าทั้งหมดลงในผลลัพธ์ผลลัพธ์ +="".join(value) + " "## กำลังพิมพ์ผลลัพธ์ (ผลลัพธ์)
ผลลัพธ์
หากคุณเรียกใช้โปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
แอปเปิ้ล ส้ม องุ่น ลูกแพร์ พีช
บทสรุป
หากคุณมีข้อสงสัยเกี่ยวกับบทช่วยสอน โปรดระบุในส่วนความคิดเห็น