Algoritmi intervjuu küsimus: kuidas täisarvu JavaScripti abil ümber pöörata?

Üks levinud intervjuuküsimus, mille paljud tarkvaratehnika taotlejad saavad, on vastupidine täisarv, milles öeldakse: "Arvestades täisarvu, tagastage täisarv, mis on numbrite vastupidine järjestamine". See näib olevat piisavalt lihtne, kuid paljud algajad programmeerijad näevad sageli vaeva, et leida terviklahendus. Selles ajaveebis antakse sellele probleemile põhjalik ülevaade ja vastuste jaotus.

Esiteks esitan vastuse ja siis lagundan ja selgitan vastuse iga aspekti.

funktsioon reverseInt (n) {
const reverse = parseInt (n.toString (). split (''). reverse (). join (''))
tagasi Math.sign (n) * tagurpidi
}

Uurime seda lähemalt.

1. samm. Esiteks loome funktsiooni reverseInt, mis võtab vastu arvu (n) argumendi. Kuigi JS-is pole sisseehitatud viisi numbri ümberpööramiseks, teame, et massi sisu ümberpööramiseks võib .reverse () -i kutsuda. Kuid kuidas muuta täisarv massiiviks? See on kaheastmeline protsess. Alustame numbriga 531. Loome muutuja, mille nimi on vastupidine.

2. samm) Selle alustamiseks peame täisarvu teisendama stringiks, nii et alustame n.toString (), mis just selle saavutab. 531 saab numbriks 531, kui helistame sellele 531.toString ().

3. samm. Kui meil on täisarv stringina, siis võime stringi nimetada .split (''). Kui te ei tunne JavaScripti funktsiooni .split, siis vaadake seda linki. Jagamisel on eraldaja ja limiidi võimalus. Kui eraldajana kasutatakse tühja stringi (“”), jaotatakse string iga märgi vahel. Tagastab massiivi, mis oli jagatud osadeks. Nüüd on meil massiiv, kus iga element tähistab iga algnumbri numbrit. “531” on nüüd [5, 3, 1]

Samm 4) Nüüd, kui täisarv on massiiv, saame massiivis nimetada .reverse (), mis teisendab selle. Kui massiiv on [5, 3, 1], on see nüüd [1, 3, 5]. Nüüd, kui see on massiivi kujul ümber pööratud, on meie järgmine samm muuta see stringiks.

5. samm. Massiivi muutmiseks stringiks peame massiivis nimetama meetodi .join () tühja stringi (“”) parameetritega. See võtab näiteks meie massiivi [1, 3, 5] ja muudab selle stringiks “135”.

6. samm) Oleme nüüd nii lähedal! Oleme oma stringi ümber pööranud, nüüd peame selle muutma täisarvuks. Me teeme seda viisil, et anname selle rakendusse parseInt (). Kui me kutsume stringi “135” peale parselnt, on tulemuseks number 135.

7. samm) See on oluline samm, kuna täisarv võib olla positiivne või negatiivne! Math.logi appi! Math.sign () võtab täisarvu ja selle tähise alusel tagastab kas 1 või -1. Kui anname Math.signile argumendina n, annab see meile positiivse arvu korral numbri 1 või negatiivse arvu korral -1, nii et kõik, mida peame tegema, on Math.sign (n) tulemuse korrutamine. vastupidise muutuja täisarvu abil, mille me vastuse saamiseks saime!

Seal on see olemas, põhjalik selgitus lihtsa ja tõhusa meetodi kohta, kuidas lahendada vastupidise täisarvu probleem. Head kodeerimist!