Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาว่าสตริงที่ให้มาแตกต่างกันโดยอักขระในตำแหน่งเดียวกันใน Python . หรือไม่


สมมติว่าเราจัดเตรียมอาร์เรย์ที่มีสตริงหลายตัวที่มีความยาวเท่ากัน เราต้องค้นหาว่าสตริงที่ให้มาสองสายมีอักขระตัวเดียวในตำแหน่งเดียวกันต่างกันหรือไม่ หากมีความแตกต่างนี้ เราจะคืนค่าจริงหรือคืนค่าเท็จ

ดังนั้น หากอินพุตเป็นเหมือน 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