Rumah >hujung hadapan web >tutorial js >Codewars - Perintah Menurun

Codewars - Perintah Menurun

Linda Hamilton
Linda Hamiltonasal
2025-01-05 10:39:43505semak imbas

Salam.

Codewars - Descending Order

Saya menyiarkan cabaran Codewars dan proses pemikiran saya dalam siri ini. Saya menggunakan JS dan Node 18 apabila boleh. Hanya demi kejelasan, saya menggunakan mereka secara adil.

Menerusi cabaran seterusnya daripada Codewars. Dalam yang ini, kami ditugaskan untuk membangunkan fungsi yang mengambil sebarang integer sebagai input. Kita perlu menyusun digit dari tertinggi hingga terendah.

Saya mulakan dengan pemikiran ini:

"Ok, entah bagaimana saya perlu membahagikan digit. Mungkin saya perlu menukar integer kepada rentetan dahulu. Kemudian bahagikan digit. Kemudian susun, kemudian gabungkan semua, kemudian kembali kepada integer"

Jadi, ia bermula dengan templat:

function descendingOrder(n){

 // stringify
  number = n.toString();

 // split digits
  array = new Array(number.length);
  // code that fills array with digits {}

 //sort
  array.sort()

 // concatenate digits
  reverse = array.join('');

 // back to integer
  n = Number.parseInt(reverse);

  return n;
}

Banyak huruf, membosankan. Dan masih tidak berfungsi. Jadi, apa lagi yang kita perlukan? Nah, gelung yang meletakkan digit dalam tatasusunan sebagai permulaan:

 // split digits
  array = new Array(number.length);
  for(i=0 ; i<number.length ; i++){
    array[i] = number.at(i);
  }

Sepatutnya. Betul tak?

Codewars - Descending Order

Tidak. Satu perincian kecil. Syaitan ada dalam butirannya. Dan begitu juga pepijat. Susunan fungsi isihan dalam fesyen menaik secara lalai. Kita perlu "mengembalikan polariti". Pada dasarnya, kita memerlukan ini. Tingkah laku lalai adalah seperti ini:

(a, b) => a - b

Dan kami memerlukan:

(a, b) => b - a

Semua bahan digabungkan:

function descendingOrder(n){
  number = n.toString();
  array = new Array(number.length);
  for(i=0;i<number.length;i++){
    array[i] = number.at(i);
  }
  array.sort((a,b)=>b-a)
  reverse = array.join('');
  n = Number.parseInt(reverse);
  return n;
}

Bukan yang terbaik, mahupun penyelesaian yang paling mudah. Tetapi ia berfungsi.

Cya. Minum air ???.

Sebelumnya

Atas ialah kandungan terperinci Codewars - Perintah Menurun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kod VS LLM = ?Artikel seterusnya:Kod VS LLM = ?