สมมติว่าเรามีรายการที่เรียกว่าความสัมพันธ์ โดยที่แต่ละองค์ประกอบในความสัมพันธ์ของรายการความสัมพันธ์ [i] มีตัวเลขสองตัว [ai, bi] แสดงว่าบุคคล ai กำลังติดตาม bi บนแพลตฟอร์มโซเชียลมีเดีย เราต้องหารายชื่อคนที่ตามใครแล้วตามกลับ เราต้องเรียงลำดับกลับตามลำดับ
ดังนั้น หากอินพุตเป็นเหมือนความสัมพันธ์ =[[0, 2],[2, 3],[2, 0],[1, 0]] ผลลัพธ์จะเป็น [0, 2]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ตอบ :=ชุดใหม่
-
เห็นแล้ว :=ชุดใหม่
-
สำหรับแต่ละคู่ a และ b ในความสัมพันธ์ ทำ
-
ทำเครื่องหมายคู่ (a, b) ตามที่เห็น
-
ถ้า (b, a) ถูกทำเครื่องหมายว่าเห็นด้วยแล้ว
-
ใส่ b และ a เข้าไป
-
-
-
จัดเรียงองค์ประกอบของ ans และส่งคืน
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(relations): ans = set() seen = set() for a, b in relations: seen.add((a, b)) if (b, a) in seen: ans.add(b) ans.add(a) k = list(ans) rtr = sorted(k) return rtr relations = [ [0, 2], [2, 3], [2, 0], [1, 0] ] print(solve(relations))
อินพุต
[[0, 2],[2, 3],[2, 0],[1, 0]]
ผลลัพธ์
[0, 2]