ฉันเพิ่งมีปัญหาในการแก้ไขที่ทำงานที่ฉันมีสองรายการ: รายการหลักและรายการขนาดเล็กที่ประกอบด้วยส่วนย่อยของรายการในรายการหลักอาจเรียงลำดับแตกต่างกัน ฉันต้องการจัดลำดับรายการหลักใหม่ในลักษณะที่รายการในชุดย่อยจะปรากฏในลำดับเดียวกันโดยไม่เปลี่ยนลำดับรายการที่ไม่พบในรายการและเก็บรายการไว้ในตำแหน่งเดียวกันทุกครั้งที่ทำได้ ตกลงว่าอาจฟังดูสับสนดังนั้นฉันจะทำลายมันลง:
- รายการหลักกำหนดลำดับของรายการเริ่มต้น
- รายการชุดย่อยกำหนดลำดับสัมพัทธ์ของรายการบางอย่าง
- ในกรณีที่รายการหลักมีองค์ประกอบสองรายการที่ผิดปกติตามรายการชุดย่อยรายการที่อยู่ก่อนหน้าในรายการหลักควรถูกย้ายไปยังดัชนีที่เก่าที่สุดซึ่งอยู่ในตำแหน่งที่ถูกต้องซึ่งสัมพันธ์กับรายการอื่น ๆ ภายในรายการชุดย่อย (เช่นทันทีหลังจากรายการในภายหลัง)
งานของคุณคือการใช้อัลกอริทึมการเรียงลำดับใหม่นี้
ตัวอย่างกรณีทดสอบ
Master: [1, 2, 3]
Subset: []
Result: [1, 2, 3]
Master: [9001, 42, 69, 1337, 420]
Subset: [69]
Result: [9001, 42, 69, 1337, 420]
Master: [9001, 42, 69, 1337, 420, 99, 255]
Subset: [69, 9001, 1337]
Result: [42, 69, 9001, 1337, 420, 99, 255]
Master: [1, 2, 3, 4, 5]
Subset: [2, 5]
Result: [1, 2, 3, 4, 5]
Master: [apple, banana, carrot, duck, elephant]
Subset: [duck, apple]
Result: [banana, carrot, duck, apple, elephant]
Master: [Alice, Betty, Carol, Debbie, Elaine, Felicia, Georgia, Helen, Ilene, Julia]
Subset: [Betty, Felicia, Carol, Julia]
Result: [Alice, Betty, Debbie, Elaine, Felicia, Carol, Georgia, Helen, Ilene, Julia]
Master: [snake, lizard, frog, werewolf, vulture, dog, human]
Subset: [snake, werewolf, lizard, human, dog]
Result: [snake, frog, werewolf, lizard, vulture, human, dog]
Master: [Pete, Rob, Jeff, Stan, Chris, Doug, Reggie, Paul, Alex]
Subset: [Jeff, Stan, Pete, Paul]
Result: [Rob, Jeff, Stan, Pete, Chris, Doug, Reggie, Paul, Alex]
Master: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Subset: [8, 1, 2, 12, 11, 10]
Result: [3, 4, 5, 6, 7, 8, 1, 2, 9, 12, 11, 10]
Master: [lol, rofl, lmao, roflmao, lqtm, smh, jk, wat]
Subset: [wat, lmao, rofl]
Result: [lol, roflmao, lqtm, smh, jk, wat, lmao, rofl]
กฎระเบียบ
- ช่องโหว่มาตรฐาน yadda yadda สะดวก I / O blah blah
- แม้ว่าตัวอย่างจะใช้ตัวเลขและสตริงคุณจะต้องสนับสนุนองค์ประกอบหนึ่งประเภทเท่านั้นไม่ว่าจะเป็นจำนวนเต็มสตริงหรือสิ่งอื่นใดที่มีซีแมนทิกส์เท่าเทียมกันที่กำหนดไว้อย่างดีรวมถึงรายการต่างกันถ้าสะดวกในภาษาของคุณ
- คุณอาจถือว่าทั้งรายการหลักและรายการชุดย่อยไม่มีรายการที่ซ้ำกัน
- คุณอาจคิดว่ารายการทั้งหมดที่พบในรายการชุดย่อยที่พบในรายการหลัก
- รายการใดรายการหนึ่งอาจว่างเปล่า
- อย่างน้อยที่สุดคุณจะต้องสนับสนุนอาร์เรย์ที่ยาวได้ถึง 100 องค์ประกอบ
- การจัดเรียงใหม่อาจดำเนินการในสถานที่หรือผ่านการสร้างรายการ / อาร์เรย์ใหม่
มีความสุขในการเล่นกอล์ฟ!
8 1 3 4 5 6 7 2 9 12 11 10
วิธีการแก้ปัญหาที่ถูกต้องเพื่อคนที่สองไปสุดท้าย?