ภาพรวม
หมายเหตุ: โค้ดตัวอย่างเดิมมีปัญหา** – คำนวณ max per key ไม่ใช่ count reverse pairs**
โจทย์จริง: นับคู่สตริงที่กลับกัน (เช่น "abc" และ "cba")
def count_reverse_pairs(strings):
seen = set()
count = 0
for s in strings:
rev = s[::-1]
if rev in seen:
count += 1
seen.add(s)
return count
# ทดสอบ
my_list = ["abc", "cba", "hello", "olleh", "world", "python"]
print(count_reverse_pairs(my_list)) # 2 pairs: (abc,cba), (hello,olleh)
โค้ดต้นฉบับ (คำนวณ Max per Key - ไม่เกี่ยวกับ Reverse Pairs)
my_list = [
{"Python": 8, "is": 1, "fun": 9},
{"Python": 2, "is": 9, "fun": 1},
{"Python": 5, "is": 10, "fun": 7}
]
result = {}
for d in my_list:
for key, value in d.items():
if key in result:
result[key] = max(result[key], value)
else:
result[key] = value
print(result) # {'Python': 8, 'is': 10, 'fun': 9}
ผลลัพธ์ของโค้ดต้นฉบับ
The result is: {'Python': 8, 'is': 10, 'fun': 9}
สรุป
- Title บอกว่า "count pairs of reverse strings" แต่โค้ดทำ "max per key across dicts"
- หากต้องการนับ reverse pairs ให้ใช้ฟังก์ชัน
count_reverse_pairs()ด้านบน - หากต้องการ max per key โค้ดต้นฉบับถูกต้อง