โหมโรง:
ฉันต้องการฝึกทำเคสทดสอบดังนั้นฉันจะลองทำสิ่งที่ง่าย
ท้าทาย:
รับอินพุต (สตริง) ใด ๆ (ภายในช่วง ASCII ที่มองเห็นได้) และอนุมานว่าเป็นตัวเลขและแสดงผลลัพธ์ที่สามารถใช้ในการประเมินได้หรือไม่
กฎ:
- ตัวเลขจะประกอบด้วยอักขระเท่านั้น
-0123456789,.
- รู้รอบจำเป็นต้องใช้เพื่อรับรู้ตัวเลขระหว่าง -1000000000 ถึง 1000000000 (พิเศษ) แต่อาจรับรู้จำนวนมากโดยพล
- คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น
- หากตัวเลขให้ส่งคืนสิ่งใดก็ตามที่สามารถนำมาใช้เพื่อแยกแยะและจัดทำเอกสารผลลัพธ์ในคำอธิบาย (เช่น
My program outputs T if a number, F if not.
) - ข้อมูลที่ป้อนจะเป็นจำนวนอักขระใด ๆ ภายในช่วง ASCII หรือว่างเปล่า (หากว่างเปล่าส่งคืนสิ่งที่คุณส่งออกหากไม่ใช่ตัวเลข)
- ตัวเลขอาจมีจุดทศนิยม (เช่น
3.14
) หากมีจะต้องมีหลักอย่างน้อยหนึ่งหลักก่อนจุดทศนิยมและอย่างน้อยหนึ่งหลัก - ตัวเลขอาจมีเลขศูนย์นำหน้าหรือต่อท้าย (เช่น
000001.00000
) - ส่วนจำนวนเต็มของตัวเลขสามารถแบ่งออกเพื่อให้สามารถอ่านได้เป็นจำนวนสามหลักด้วยเครื่องหมายจุลภาค (เช่น
1,000.23456
) ในกรณีนี้พวกเขาจะต้องถูกแบ่งออกทุกสามตัวเลขจากขวาไปซ้าย (อดีต.1,234,567
,10,000.202
,123,234.00
,0,123.293
) - ตัวเลขเชิงลบถูกระบุโดยผู้นำหน้า
-
(เช่น-1.23
)+
ไม่อนุญาตให้นำไปสู่หมายเลขที่เป็นบวกและควรส่งออกผลลัพธ์เป็นเท็จ - ข้อยกเว้นจะไม่ถูกนับเป็นเอาต์พุตที่ถูกต้องและมองเห็นได้ (ยกเว้นเมื่อสามารถส่งเอาต์พุตไปยังสตรีมออกมาตรฐาน (เช่น
Exception on line N [...]
สามารถใส่เป็นเอาต์พุตสำหรับหมายเลข / ไม่ใช่ตัวเลข) หากสตริงถูกสตรีมมาตรฐาน
กรณีทดสอบ:
(สมมติว่าเป็นMy program outputs T if a number, F if not.
เวอร์ชั่น)
123 -> T [on integer]
-123 -> T [negative numbers need to be handled]
0 -> T [on zero]
123.456 -> T [on floating point]
123,456.789 -> T [on evenly divided by 3 digits with comas]
123456789 -> T [thousand separators are not required]
0000001.00000 -> T [on leading/trailing zeros]
00.00 -> T [on zero and leading/trailing zeros]
999999999.9999999999999999999999999999999999999999999999999999 -> T [on close to the maximum value]
-999999999.9999999999999999999999999999999999999999999999999999 -> T [on close to the minimum value]
-> F [on empty]
lolz -> F [on non-number value]
n4melyh4xor -> F [on non-number with digits]
1.2 -> F [on space-padded]
9.3 1.3 -> F [on anyhow separated multiple numbers]
1e5 -> F [no scientific notation]
50cl05e.buty3ts0f4r -> F [on input with letters obscuring the number]
1,2,3,4.5678 -> F [on badly readability-divided number]
1,234.5,678 -> F [on readability-divided floating point part]
.234 -> F [on no leading zero]
+1 -> F [no leading + sign]
1.234.3 -> F [only one decimal point]
12345,678 -> F [on separator stopping mid-way]
รหัส - กอล์ฟตัวละครอย่างน้อยเป็นผู้ชนะ
-123
ตกลงจะเป็นอย่างไร+456
-> ดีหรือไม่ดี หรือถูก+
ออกจากงานปาร์ตี้?