Ceist Agallaimh Algartam: Conas slánuimhir a aisiompú ag úsáid JavaScript

Ceist agallaimh choitianta amháin a fhaigheann go leor iarratasóirí Innealtóireachta Bogearraí is ea an cheist droim ar ais slánuimhir, a deir: “Má thugtar slánuimhir duit, slánuimhir atá in ord droim ar ais na n-uimhreacha”. Dealraíonn sé go bhfuil sé seo simplí go leor, ach is minic a bhíonn sé deacair ar go leor ríomhchláraitheoirí tosaitheoirí réiteach iomlán a fháil. Rachaidh an blag seo isteach in athbhreithniú domhain agus miondealú ar fhreagra na faidhbe seo.

Ar dtús, táim chun an freagra a chur i láthair, agus ansin brisfidh mé síos agus míneoidh mé gach gné den fhreagra.

feidhm droim ar ais (n) {
droim ar ais = parseInt (n.toString (). scoilt (''). droim ar ais (). ceangail (''))
filleadh Math.sign (n) * droim ar ais
}

Déanaimis scrúdú breise air seo.

Céim 1) Ar dtús, cruthaímid feidhm ar a dtugtar reverseInt a ghlacann le hargóint faoi uimhir (n). Cé nach bhfuil aon bhealach ionsuite ann chun uimhir a aisiompú i JS, tá a fhios againn gur féidir .reverse () a ghlaoch chun ábhar eagair a aisiompú. Ach conas a dhéanfadh slánuimhir ina eagar? Is próiseas dhá chéim é seo. Tosaímid leis an uimhir 531. Cruthaímid athróg ar a dtugtar droim ar ais.

Céim 2) Chun é seo a thosú caithfimid an tslánuimhir a thiontú ina shreang, mar sin tosaímid le n.toString () a bhaineann amach é sin go díreach. Beidh 531 ina “531” má ghlaoimid 531.toString () air.

Céim 3) Ceann a bhfuil an tslánuimhir againn mar shreang, is féidir linn .split ('') a ghlaoch ar an tsreang. Mura bhfuil tú eolach ar an bhfeidhm .split i JavaScript, féach ar an nasc seo. Tá deighilteoir agus rogha teorann ag Scoilt. Má úsáidtear sreangán folamh (“”) mar an deighilteoir, roinntear an sreangán idir gach carachtar. Filleann sé sraith leis na míreanna a bhí “scoilte”. Anois tá sraith againn ina léiríonn gach eilimint gach dhigit den uimhir thosaigh. Tá “531” anois [5, 3, 1]

Céim 4) Anois go bhfuil an tslánuimhir againn mar eagar, is féidir linn .reverse () a ghlaoch ar an eagar, a aisiompóidh í. Más é [5, 3, 1] an t-eagar beidh sé anois [1, 3, 5]. Anois go bhfuil muid droim ar ais i bhfoirm eagar, is é an chéad chéim eile é a iompú ar ais ina shreang.

Céim 5) D’fhonn eagar a iompú ina shreang, caithfimid an modh .join () a ghlaoch ar an eagar le paraiméadair sreangán folamh (“”). Tógfaidh sé seo ár n-eagar, mar shampla [1, 3, 5] agus é a iompú ina shraith “135”.

Céim 6) Táimid chomh gar anois! Táimid tar éis ár sreangán a aisiompú, anois ní mór dúinn an sreangán a iompú ar ais ina slánuimhir. Is é an bealach a dhéanaimid é sin trína chur ar aghaidh go parseInt (). Chomh luath agus a ghlaoimid parseInt ar an tsreang “135”, is é an toradh atá orainn ná an uimhir 135.

Céim 7) Is céim riachtanach é seo ós rud é gur féidir le slánuimhreacha a bheith dearfach nó diúltach! Math.sign chun an tarrthála! Glacann Math.sign () slánuimhir, agus bunaithe ar a shíniú, filleann sé 1 nó -1. Má thugaimid n mar argóint chuig Math.sign, tabharfaidh sé uimhir 1 dúinn más uimhir dheimhneach nó -1 más uimhir dhiúltach í, mar sin níl le déanamh againn ach toradh Math.sign (n) a iolrú. leis an slánuimhir athraitheach droim ar ais a fuaireamar chun ár bhfreagra a fháil!

Tá sé agat, míniú domhain ar mhodh simplí agus éifeachtach le réiteach don fhadhb slánuimhir droim ar ais. Códú sona!