บทนำ
ความท้าทายนี้ประกอบด้วยในการหาจำนวนมากที่สุดเอาYตัวเลขจากจำนวนเดิมnซึ่งมีxตัวเลข
สมมติว่าy=2 n=5263 x=4
ตัวเลขที่เป็นไปได้ที่จะลบy = 2หลักคือ:
[52, 56, 53, 26, 23, 63]
ดังนั้นจำนวนมากที่สุดคือ63
ซึ่งจะต้องเป็นผลลัพธ์สำหรับตัวอย่างนี้
ตรรกะอีกจะเป็น: สำหรับแต่ละปีค้นหาจากซ้ายไปขวาบาทซึ่งที่ถูกต้องต่อไปคือหลักมากขึ้นแล้วเอามันอย่างอื่นเมื่อไม่มีการแข่งขันเอา Y
ใช้y=3 n=76751432 x=8
เพื่ออธิบาย:
y=3
76751432
-^------ remove 6 because right next 7 is greater
y=2
7751432
---^--- remove 1 because right next 4 is greater
y=1
775432
-----^ the search failed, then remove last y digits
result = 77543
ทั้งสองวิธีที่อธิบายข้างต้นใช้งานได้แน่นอนคุณสามารถใช้วิธีอื่นได้ด้วย :)
ท้าทาย
จำนวนnจะไม่มีตัวเลขมากกว่า 8 หลักและyจะมากกว่าศูนย์และต่ำกว่าxเสมอ
เพื่อหลีกเลี่ยงรูปแบบการป้อนข้อมูลที่เข้มงวดคุณสามารถใช้ค่า: y n x
วิธีที่คุณต้องการ: เป็นพารามิเตอร์ในฟังก์ชั่นการป้อนข้อมูลดิบหรือวิธีการที่ถูกต้องอื่น ๆ อย่าลืมบอกว่าคุณทำอย่างนั้นในคำตอบของคุณ
ผลลัพธ์ควรเป็นหมายเลขผลลัพธ์
นี่คือcode-golfคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่างอินพุตและเอาต์พุต
อีกครั้ง: คุณไม่จำเป็นต้องเข้มงวดมากเกินไป :)
4 1789823 7 -> 983
1 54132 5 -> 5432
3 69314 5 -> 94
2 51794 5 -> 794
แก้ไข
ฉันเปลี่ยนลำดับอินพุตเพื่อสะท้อนถึงความจริงที่ว่าบางท่านอาจไม่ต้องการค่าxเพื่อแก้ปัญหา xตอนนี้เป็นค่าเผื่อเลือก
x
เป็นข้อมูลที่ไร้ประโยชน์
x
ป้อนข้อมูลสามารถทำให้รหัสสั้นลงได้ (ตรงประเด็น: จูเลียคำตอบของฉัน)