ให้สตริงสองตัว ต้องการสร้างสตริงใหม่ที่ประกอบด้วยตัวอักษรที่ไม่ซ้ำกัน (uncommon characters) จากทั้งสองสตริง เช่น hafeez และ kareem → hfzkrm
อัลกอริทึม
1. กำหนดสตริง 2 ตัว 2. สร้างสตริงว่าง new_string 3. วนลูปสตริงแรก: ถ้าตัวอักษรไม่อยู่ในสตริงที่สอง → เพิ่มเข้า new_string 4. วนลูปสตริงที่สอง: ถ้าตัวอักษรไม่อยู่ในสตริงแรก → เพิ่มเข้า new_string 5. พิมพ์ new_string
โค้ดตัวอย่าง
string_1 = "hafeez"
string_2 = "kareem"
new_string = ""
for char in string_1:
if char not in string_2:
new_string += char
for char in string_2:
if char not in string_1:
new_string += char
print(f"New String: {new_string}")ผลลัพธ์
New String: hfzkrm
วิธี替代 (Alternative) ด้วย Set
string_1 = "hafeez"
string_2 = "kareem"
set1 = set(string_1)
set2 = set(string_2)
# symmetric difference: ตัวอักษรที่อยู่ในเซตใดเซตหนึ่ง แต่ไม่ใช่ทั้งสอง
uncommon = set1 ^ set2 # หรือ set1.symmetric_difference(set2)
# เรียงลำดับเพื่อความสม่ำเสมอ (optional)
result = ''.join(sorted(uncommon))
print(f"New String: {result}")ผลลัพธ์
New String: fhkrmz
หมายเหตุ: วิธี Set จะไม่รักษาลำดับตัวอักษรตามสตริงต้นฉบับ และจะเอาตัวอักษรซ้ำในสตริงเดิมออกไป (unique characters only)
สรุป
วิธีลูปตรวจสอบเก็บลำดับและตัวซ้ำได้ วิธี Set สั้นกว่าแต่ได้ unique characters เท่านั้น เลือกใช้ตามต้องการ หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็น