Rumah  >  Artikel  >  hujung hadapan web  >  Program JavaScript untuk mencari bilangan maksimum 0 berturut-turut yang diletakkan pada permulaan dan penghujung gelung arbitrari dalam rentetan binari

Program JavaScript untuk mencari bilangan maksimum 0 berturut-turut yang diletakkan pada permulaan dan penghujung gelung arbitrari dalam rentetan binari

WBOY
WBOYke hadapan
2023-09-01 20:33:021359semak imbas

JavaScript 程序查找二进制字符串任意循环中在开头和结尾处连续放置的 0 的最大数量

Kami akan menulis atur cara JavaScript untuk mencari bilangan maksimum sifar yang diletakkan berturut-turut pada permulaan dan penghujung mana-mana gelung rentetan binari. Program kami akan mengambil rentetan binari sebagai input dan mengembalikan bilangan maksimum sifar yang diletakkan pada permulaan dan akhir dalam sebarang putaran rentetan yang diberikan. Untuk menyelesaikan masalah ini, kami akan menggunakan teknik manipulasi rentetan untuk memanipulasi rentetan input dan mencari output yang dikehendaki.

Dalam langkah seterusnya, kami akan memutarkan rentetan input dan mengira bilangan sifar pada permulaan dan penghujung rentetan yang diputar. Kami akan terus memutar rentetan sehingga kami mencapai rentetan input asal sekali lagi dan menjejaki bilangan maksimum sifar yang diletakkan pada permulaan dan akhir semasa semua putaran.

Akhir sekali, kami akan mengembalikan bilangan maksimum sifar sebagai output program. Program ini akan menjadi sangat cekap dan akan berjalan dalam kerumitan masa linear, menjadikannya sesuai untuk menyelesaikan masalah ini walaupun untuk input yang besar.

Kaedah

Untuk mencari bilangan maksimum sifar yang diletakkan berturut-turut pada permulaan dan penghujung mana-mana putaran rentetan binari, ikut langkah ini -

  • Pertama, gabungkan rentetan binari asal dengan dirinya untuk membentuk rentetan baharu.

  • Seterusnya, gunakan gelung untuk menjana semua kemungkinan putaran rentetan binari dengan menggerakkan satu aksara dari awal hingga akhir rentetan baharu pada setiap lelaran.

  • Untuk setiap putaran, cari bilangan sifar yang diletakkan berturut-turut pada permulaan dan penghujung rentetan.

  • Simpan bilangan sifar terbesar yang ditemui setakat ini dalam pembolehubah.

  • Ulang langkah 3 dan 4 sehingga semua putaran telah diproses.

  • Nilai akhir yang disimpan dalam pembolehubah ialah bilangan maksimum sifar yang diletakkan berturut-turut pada permulaan dan akhir dalam mana-mana gelung rentetan binari.

Contoh

Berikut ialah contoh program JavaScript yang mencari bilangan maksimum sifar diletakkan berturut-turut pada permulaan dan penghujung mana-mana putaran rentetan binari -

function maxZeros(binaryString) {
   
   // Store the number of zeros in the original binary string
   let originalZeros = 0;
   while (binaryString[originalZeros] === "0") {
      originalZeros++;
   }
   
   // Store the number of zeros in each rotation of the binary string
   let maxZeros = originalZeros;
   let rotatedZeros = originalZeros;
   for (let i = 1; i < binaryString.length; i++) {
      if (binaryString[i] === "0") {
         rotatedZeros++;
      } else {
         rotatedZeros = 0;
      }
      maxZeros = Math.max(maxZeros, rotatedZeros);
   }
   
   // Return the maximum number of zeros
   return maxZeros;
}

// Example usage
let binaryString = "0110001111";
let maxZerosCount = maxZeros(binaryString);
console.log("The maximum number of zeros is: " + maxZerosCount);

Arahan

    Fungsi
  • maxZeros mengambil sebagai input rentetan binari dan mengembalikan bilangan maksimum sifar yang diletakkan berturut-turut pada permulaan dan akhir mana-mana putaran rentetan itu.

  • Langkah pertama ialah mencari bilangan sifar dalam rentetan binari asal. Ini dilakukan menggunakan gelung semasa yang berterusan sehingga aksara selain daripada 0 ditemui. Bilangan sifar disimpan dalam pembolehubah originalZeros.

  • Langkah seterusnya ialah mencari bilangan sifar dalam rentetan binari setiap kali melalui gelung. Untuk melakukan ini, kami menggunakan gelung untuk bermula dari 1 sehingga panjang rentetan binari. Pada setiap lelaran gelung, kami menyemak sama ada aksara semasa ialah 0. Jika ya, kami menambah kiraan rotatedZeros. Jika tidak, kami menetapkan semula kiraan rotatedZeros kepada 0. Akhir sekali, kami mengemas kini bilangan maksimum sifar yang dilihat setakat ini dengan membandingkan rotatedZeros dengan maxZeros . > Dan simpan yang lebih besar daripada keduanya.

  • Selepas gelung tamat, kembalikan bilangan maksimum sifar.

  • Akhir sekali, contoh penggunaan fungsi menunjukkan cara memanggilnya menggunakan rentetan binari dan log hasilnya ke konsol.

Atas ialah kandungan terperinci Program JavaScript untuk mencari bilangan maksimum 0 berturut-turut yang diletakkan pada permulaan dan penghujung gelung arbitrari dalam rentetan binari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam