Tekli sayılar genellikle yalnızca negatif olmayan tam sayıları temsil eder, ancak bunları aşağıdaki gibi tam sayıları temsil edecek şekilde genişletebiliriz:
- Pozitif bir N tamsayısı N 'olarak temsil edilir
1
:5 -> 11111
- Negatif bir tamsayı -N,
0
bunu N1
' ile temsil eder :-5 -> 011111
- Sıfır, şu şekilde temsil edilir:
0
Daha sonra 0
, ayırıcı olarak kullanırsak bu numaraların bir listesini net bir şekilde temsil edebiliriz :
3,-2,0,1
111,011,0,1
111 0 011 0 0 0 1
11100110001
Göreviniz: imzalanmış tekli numaraların bir listesini temsil eden bir dize alın ve ondalık sayılar listesine dönüştürün.
ayrıntılar
Girişin, imzalı tek sayıların eksiksiz bir listesi olduğunu varsayabilirsiniz. Özellikle, programınızın bir ayırıcı ile biten 1) boş girişi veya 2) girişi işlemesi gerekmez.
Her bir sayının büyüklüğünün 127'yi geçmeyeceğini varsayabilirsiniz. Maksimum dize veya liste boyutlarına sahip diller için, giriş ve çıktının dilinizin veri yapılarına sığacağını varsayabilirsiniz, ancak algoritmanız teorik olarak herhangi beden.
Programınız veya işleviniz standart yollardan herhangi birinde G / Ç gerçekleştirebilir . Girdi, bir dize veya bir karakter listesi, tek karakterli dizeler, tamsayılar veya booleans olabilir. Sen temsil etmek herhangi iki karakter kullanabilir 1
ve 0
; kullanmazsanız 1
ve 0
lütfen hangi karakterleri kullandığınızı belirtin.
Çıktı herhangi bir makul liste formatında ondalık sayılar olmalıdır (özellikle sayılar arasında bir tür ayırıcı olmalıdır). Negatif sayılar eksi işareti ile belirtilmelidir, ancak diliniz negatif tamsayılar için farklı bir biçime sahipse bunu da kabul edeceğim. Sıfır, çıktıda 0
veya olarak temsil edilebilir -0
.
Test senaryoları
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
) ve negatif işaret önekinin ( 0
) aynı olması, yine de açık olmasına rağmen, bir sayının ortasında negatif işaretlere sahip olamayacağınız için ( 182--693-1
bir sayı? Hayır, ve ikisi de 1111011000101111
aynı nedenden dolayı değildir).
'0's
için teknik olarak tekli değildir. Gerçi iyi bir meydan okuma!