เป้าหมายของคุณคือการคำนวณจุดตัดที่กำหนดไว้ของรายการจำนวนเต็มสองรายการ การแยกถูกกำหนดให้เป็นกลุ่มของจำนวนเต็มแบบไม่เรียงลำดับที่ไม่ซ้ำกันที่พบอย่างน้อยหนึ่งครั้งในรายการอินพุตทั้งสอง
อินพุต
อินพุตอาจอยู่ในรูปแบบที่ต้องการ (พารามิเตอร์ฟังก์ชัน, stdio ฯลฯ ) และประกอบด้วยรายการจำนวนเต็มสองรายการ คุณหลายคนไม่คิดอะไรเกี่ยวกับแต่ละรายการอื่น ๆ นอกเหนือจากนั้นอาจมีจำนวนเต็มจำนวนที่ไม่เป็นลบ (นั่นคือไม่ได้เรียงลำดับอาจเป็นไปได้ว่าอาจมีรายการซ้ำอาจมีความยาวต่างกันและอาจว่างเปล่า) มีการสันนิษฐานว่าจำนวนเต็มแต่ละรายการจะพอดีกับประเภทจำนวนเต็มที่เป็นภาษาท้องถิ่นของคุณซึ่งอาจมีความยาวมากกว่า 1 หลักทศนิยมและมีการลงชื่อ
อินพุตตัวอย่าง:
1 4 3 9 8 8 3 7 0
10 1 4 4 8 -1
เอาท์พุต
เอาท์พุทเป็นรายการที่เหมือนจำนวนเต็มแทนชุดจุดตัดของทั้งสองรายการเป็นรูปแบบที่ต้องการ (ค่าส่งคืน stdio ฯลฯ ) ไม่มีความต้องการที่จะเรียงลำดับผลลัพธ์แม้ว่าคุณจะยินดีที่จะจัดให้มีการใช้งานที่เกิดขึ้นกับการเรียงลำดับเสมอ ผลลัพธ์จะต้องเป็นชุดที่ไม่ได้รับคำสั่งที่ถูกต้อง (เช่นจะต้องไม่มีค่าซ้ำกัน)
ตัวอย่างกรณีทดสอบ (โปรดสังเกตว่าลำดับของเอาต์พุตไม่สำคัญ):
สองบรรทัดแรกคือรายการอินพุตบรรทัดที่สามคือเอาต์พุต (empty)
หมายถึงรายการที่ว่างเปล่า
(empty)
(empty)
(empty)
1000
(empty)
(empty)
3 1 2 4 3 1 1 1 1 3
3 1 -1 0 8 3 3 1
1 3
1 2 1
3 3 4
(empty)
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์
ห้ามเจาะรูมาตรฐาน คุณสามารถใช้คุณสมบัติในตัวที่ไม่ได้ออกแบบมาสำหรับการใช้งานแบบ set-like
คุณสมบัติที่ห้ามใช้ในตัว:
- ตั้งค่าการสร้าง / ลบรายการที่ซ้ำกัน
- ตั้งค่าความแตกต่าง / ทางแยก / สหภาพ
- การทดสอบการเป็นสมาชิกทั่วไป (เช่นสิ่งใดก็ตามที่คล้ายกับ
in
คำสำคัญใน PythonindexOf
ฟังก์ชั่นเหมือนกัน ฯลฯ ) โปรดทราบว่าอนุญาตให้ใช้การสร้าง "foreach item in list" ได้ (สมมติว่าพวกเขาไม่ได้ละเมิดข้อ จำกัด อื่น ๆ ) แม้ว่า Python จะใช้in
คำหลักเพื่อสร้างโครงสร้างนี้ใหม่ - บิวด์อินที่ต้องห้ามเหล่านี้คือ "viral" เช่นหากมีบิวด์อินที่ใหญ่กว่าที่มีฟีเจอร์ย่อยเหล่านี้มันเป็นสิ่งต้องห้ามในทำนองเดียวกัน (เช่นการกรองโดยการเป็นสมาชิกในรายการ)
บิวด์อินใด ๆ ที่ไม่อยู่ในรายการด้านบนได้รับอนุญาต (เช่นการเรียงลำดับการทดสอบความเท่าเทียมกันจำนวนเต็มลิสต์ผนวก / ลบออกโดยดัชนีการกรอง ฯลฯ )
ตัวอย่างเช่นใช้ตัวอย่างโค้ดสองตัวอย่างต่อไปนี้ (โค้ดคล้าย Python):
# prohibited: filters by testing if each value in tmpList is a member of listA
result = tmpList.filter(listA)
# ok: filtering by a lambda which manually iterates over listA and checks for equality
def my_in_func(val, slist):
for a in slist:
if(val == a):
return True
return False
result = filter(lambda v: my_in_func(val, listA), tmpList)
คุณสามารถนำคุณลักษณะที่เป็นเหมือนชุดเหล่านี้มาใช้ได้ด้วยตนเองและพวกเขาจะนับรวมคะแนนของคุณ
โซลูชันของคุณควรทำในเวลาที่เหมาะสม (พูดน้อยกว่าหนึ่งนาทีสำหรับฮาร์ดแวร์ใดก็ตามที่คุณมีสำหรับสองรายการ ~ ยาว 1,000 รายการ)