Пытанне інтэрв'ю з алгарытмам: Як змяніць цэлае лік з дапамогай JavaScript

Адзін распаўсюджаны пытанне інтэрв'ю, якое атрымліваюць многія заяўнікі праграмнага забеспячэння, з'яўляецца зваротным цэлым пытаннем, у якім гаворыцца: "Улічваючы цэлае лік, вярніце цэлае лік, гэта зваротны парадак лікаў". Здаецца, гэта досыць проста, але многія праграмісты-пачаткоўцы часта спрабуюць знайсці поўнае рашэнне. Гэты блог будзе ўваходзіць у паглыблены агляд і разборкі адказаў на гэтую праблему.

Спачатку я буду прадставіць адказ, а потым разбужу і растлумачу кожны аспект адказу.

функцыя reverseInt (n) {
const reverse = parseInt (n.toString (). split (''). reverse (). join (''))
вярнуцца Math.sign (n) * рэверс
}

Давайце разгледзім гэта далей.

Крок 1) Спачатку мы ствараем функцыю, званую reverseInt, якая прымае ў аргумент лік (n). Хоць у JS не існуе ўбудаванага спосабу, каб змяніць лік, мы ведаем, што .reverse () можа выклікаць зварот змесціва масіва. Але як ператварыць цэлае лік у масіў? Гэта двухэтапны працэс. Пачнем з ліку 531. Давайце створым зменную, званую зваротнай.

Крок 2) Каб пачаць гэта, нам трэба пераўтварыць цэлае лік у радок, таму мы пачнем з n.toString (), які дамагаецца менавіта гэтага. 531 стане "531", калі мы назавём на ім 531.toString ().

Крок 3) Адзін з нас, які мае цэлае лік як радок, можна назваць .split ('') у радку. Калі вы не знаёмыя з .split функцыяй у JavaScript, праверце гэтую спасылку. Спліт мае раздзяляльнік і ліміт. Калі ў якасці раздзяляльніка выкарыстоўваецца пустая радок (""), радок падзяляецца паміж кожным знакам. Ён вяртае масіў з элементамі, якія былі "разбіты". Цяпер у нас ёсць масіў, у якім кожны элемент ўяўляе кожную лічбу стартавага ліку. "531" цяпер [5, 3, 1]

Крок 4) Цяпер, калі ў нас ёсць цэлае лік як масіў, мы можам выклікаць .reverse () на масіў, які будзе змяняць яго. Калі масіў будзе [5, 3, 1], ён цяпер будзе [1, 3, 5]. Цяпер, калі мы змянілі яго ў выглядзе масіва, наш наступны крок - ператварыць яго ў радок.

Крок 5) Для таго, каб ператварыць масіў у радок, нам трэба выклікаць метад .join () у масіве з параметрамі пустой радкі (""). Для гэтага возьмем, напрыклад, наш масіў [1, 3, 5], і ператворым яго ў радок "135".

Крок 6) Цяпер мы так блізка! Мы змянілі наш радок, зараз мы павінны ператварыць радок у цэлае лік. Мы гэта робім, перадаючы яго ў parseInt (). Пасля таго, як мы назавем parseInt у радку "135", наш вынік - лік 135.

Крок 7) Гэта важны крок, бо цэлыя лікі могуць быць станоўчымі або адмоўнымі! Math.sign на дапамогу! Math.sign () прымае цэлае лік, і на аснове яго знака вяртае альбо 1, альбо -1. Калі мы перададзім n як аргумент Math.sign, ён дасць нам 1, калі гэта станоўчае лік альбо -1, калі гэта адмоўнае лік, таму ўсё, што нам трэба зрабіць, гэта памножыць вынік Math.sign (n) па цэлай колькасці зваротнай зменнай, якую мы атрымалі, каб атрымаць наш адказ!

Там у вас ёсць паглыбленае тлумачэнне простага і эфектыўнага метаду для вырашэння праблемы адваротнага цэлага ліку. Шчаслівае кадаванне!