สมมติว่าเราจัดเตรียมอาร์เรย์ที่มีสตริงหลายตัวที่มีความยาวเท่ากัน เราต้องค้นหาว่าสตริงที่ให้มาสองสายมีอักขระตัวเดียวในตำแหน่งเดียวกันต่างกันหรือไม่ หากมีความแตกต่างนี้ เราจะคืนค่าจริงหรือคืนค่าเท็จ
ดังนั้น หากอินพุตเป็นเหมือน dict =['pqrs', 'prqs', 'paqs'] ผลลัพธ์จะเป็น True ผลลัพธ์ที่ได้คือ True เนื่องจากสตริงที่แสดงในอินพุตต่างกันในดัชนี 1 ดังนั้น หากใช้คู่ใดคู่หนึ่ง จะมีความแตกต่างในตำแหน่งเดียวกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
เห็นแล้ว :=ชุดใหม่
-
สำหรับแต่ละคำใน dict ทำ
-
สำหรับแต่ละดัชนี i และอักขระ c ในคำ ให้ทำ
-
masked_word :=word[จากดัชนี 0 ถึง i] + '.' + word[จากดัชนี i+1 ถึงท้ายสตริง]
-
ถ้า masked_word ปรากฏให้เห็นแล้ว
-
คืนค่า True
-
-
มิฉะนั้น
-
เพิ่ม (masked_word) เพื่อดู
-
-
-
-
คืนค่าเท็จ
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(dict): seens = set() for word in dict: for i, c in enumerate(word): masked_word = word[:i] + '.' + word[i+1:] if masked_word in seens: return True else: seens.add(masked_word) return False print(solve(['pqrs', 'prqs', 'paqs']))
อินพุต
['pqrs', 'prqs', 'paqs']
ผลลัพธ์
True