โดยทั่วไปแล้วตัวเลขที่ไม่ใช่ตัวเลขจะแสดงเฉพาะจำนวนเต็มที่ไม่ใช่ค่าลบ แต่เราสามารถขยายตัวเลขเหล่านี้เพื่อแสดงจำนวนเต็มทั้งหมดดังนี้:
- จำนวนเต็มบวก N ถูกแทนด้วย N
1
:5 -> 11111
- จำนวนเต็มลบ -N ถูกแทน
0
ด้วยตามด้วย N1
:-5 -> 011111
- ศูนย์แสดงเป็น
0
จากนั้นเราสามารถแสดงรายการของตัวเลขเหล่านี้ได้อย่างชัดเจนหากเราใช้0
เป็นตัวคั่น:
3,-2,0,1
111,011,0,1
111 0 011 0 0 0 1
11100110001
งานของคุณ: นำสตริงที่แสดงรายการของหมายเลขยูนารีที่ลงนามแล้วและแปลเป็นรายการของเลขทศนิยม
รายละเอียด
คุณอาจสมมติว่าการป้อนข้อมูลเป็นรายการที่สมบูรณ์ของหมายเลข unary ที่ลงนามแล้ว โดยเฉพาะอย่างยิ่งโปรแกรมของคุณจะไม่ต้องจัดการ 1) อินพุตว่างเปล่าหรือ 2) อินพุตที่ลงท้ายด้วยตัวคั่น
คุณอาจคิดว่าขนาดของแต่ละหมายเลขจะต้องไม่เกิน 127 สำหรับภาษาที่มีขนาดของสตริงหรือรายการสูงสุดคุณอาจสมมติว่าอินพุตและเอาต์พุตจะพอดีกับโครงสร้างข้อมูลของภาษาของคุณ แต่อัลกอริทึมของคุณควรทำงานกับรายการ ขนาดใดก็ได้
โปรแกรมหรือฟังก์ชั่นของคุณอาจทำการ I / O ด้วยวิธีมาตรฐานใดๆ อินพุตอาจเป็นสตริงหรือรายการอักขระสตริงอักขระเดี่ยวจำนวนเต็มหรือบูลีน คุณสามารถใช้อักขระสองตัวเพื่อแทน1
และ0
; หากคุณไม่ได้ใช้1
และ0
โปรดระบุตัวละครที่คุณใช้
ผลลัพธ์จะต้องเป็นตัวเลขทศนิยมในรูปแบบรายการที่สมเหตุสมผล (โดยเฉพาะอย่างยิ่งจะต้องมีตัวคั่นบางชนิดระหว่างตัวเลข) ควรระบุจำนวนลบด้วยเครื่องหมายลบแม้ว่าภาษาของคุณจะมีรูปแบบที่แตกต่างกันสำหรับจำนวนเต็มลบฉันก็จะยอมรับเช่นกัน ศูนย์อาจจะเป็นตัวแทนในการส่งออกเป็นหรือ0
-0
กรณีทดสอบ
1 -> 1
0 -> 0 (or -0, and similarly for the other test cases)
011 -> -2
1101 -> 2,1
1100 -> 2,0
11001 -> 2,-1
110001 -> 2,0,1
11100110001 -> 3,-2,0,1
00000001 -> 0,0,0,-1
01111011111111001111111111111110111111111111111100111111111111111111111110111111111111111111111111111111111111111111 -> -4,8,-15,16,-23,42
01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -> -127
0
) และคำนำหน้าเครื่องหมายลบ ( 0
) เหมือนกันแม้ว่าจะยังไม่ชัดเจนเนื่องจากคุณไม่สามารถมีเครื่องหมายลบในระหว่างตัวเลข (เป็น182--693-1
ตัวเลขหรือไม่ไม่ได้ และไม่ใช่1111011000101111
เหตุผลเดียวกันทั้งหมด)
'0's
อยู่จึงไม่เป็นไปในทางเทคนิค ท้าทายดีแม้ว่า!