Reverse Number- Arrays Contest

Здравейте,
Имам проблем с една от задачите от array contest-a. Judge ми дава 80/100 за моето решение (see link below), но неразбирам къде ми е грешката. В vsc тръгва и ми дава правилните отговори за всички sample test от задачата. Може ли някой да ме насочи къде греша? Благодаря предварително!

https://pastebin.com/ba4HyWXr

Reverse Number

Description

Write a method that reverses the digits of a given decimal number.

Input

  • On the first line you will receive a number

Output

  • Print the given number with reversed digits

Sample tests

Input Output
256 652
123.45 54.321

Промених този ред:

let a= parseFloat(arr.toString().split('').reverse().join('')) * Math.sign(arr);

на:

let a = arr.toString().split('').reverse().join('');

и даде последните 20 точки.

Здравей,
Тръгна и при мене. Благодаря много за помощта.
Обаче има две неща, които не разбирам:

  1. Без Math.Sign функцията, ако въведем отрицателно число, ни дава грешен отговор: -123 го изписва като 321- без Math.Sign функцията…
    2)В условието на задачета пиша: Print the given number - ако премахнем parseFloat функцията тогава няма да принтира number, с ще принтира string или поне така си мисля аз.

Какво е твоето наблюдение върху горните две точки?

1.Без Math.Sign функцията, ако въведем отрицателно число, ни дава грешен отговор: -123 го изписва като 321- без Math.Sign функцията…

Никъде не пише, че ще подават отрицателни числа, -0.123 ще го обърне като 321.0-
с кода който си написал :smiley: . Най-вероятно тестовете в джъдж не проверяват за отрицателни стойности (просто догадка). С отрицателни стойности май задачата се усложнява малко повече. В стремежа си да покриеш всички случаи (дори и да няма такива) малко си си усложнил живота и може би си се объркал накрая.

2.В условието на задачета пиша: Print the given number - ако премахнем parseFloat функцията тогава няма да принтира number, с ще принтира string или поне така си мисля аз.

Ами попринцип щом нямаш някакви аритметични операции с числата (не ги променяш като стойност в случая само ги обръщаш) си ги печатай като стринг. Прост пример, ако напиша 234324 и ако отвориш html-a на страницата това се резпрезентира като стринг.

В задачата няма constraints и това я прави малко двусмислена, защото от математическа гледна точка примера с -0.123 -> 321.0- е грешен, но пък от друга гледна точка това е правилно reverse-нат стринг :joy: Това е моето мнение :thinking:

"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
" -90e3 " => true
" 1e" => false
"e3" => false
" 6e-1" => true
" 99e2.5 " => false
"53.5e93" => true
" --6 " => false
"-+3" => false
"95a54e53" => false

Там където има true означава че стрингът може да бъде репрезентиран като число.

1 Like

Благодаря за изчерпателния отговор!