Program JavaScript untuk putaran kiri dan kanan rentetan

PHPz
Lepaskan: 2023-09-15 16:01:12
ke hadapan
926 orang telah melayarinya

用于左旋转和右旋转字符串的 JavaScript 程序

Putaran kiri rentetan bermaksud mengalihkan bilangan aksara tertentu mengikut lawan jam dari bahagian awalan dan menambahkannya pada bahagian akhiran. Begitu juga, putaran kanan rentetan bermakna bahawa aksara rentetan yang diberikan digerakkan mengikut arah jam, tetapi betul-betul bertentangan dengan putaran kiri, dan bilangan aksara tertentu diambil daripada akhiran dan ditambah pada awalan rentetan. Dalam artikel ini, kami akan melaksanakan program JavaScript untuk putaran kiri dan putaran kanan rentetan tertentu.

Pengenalan kepada masalah

Dalam soalan ini, kita mendapat rentetan dan nombor. Nombor ini mewakili berapa kali kita perlu memutarkan tali ke mana-mana arah. Memandangkan kita mempunyai beberapa idea tentang putaran mengikut arah jam dan lawan jam bermaksud mengambil beberapa aksara dari bahagian permulaan atau awalan atau dari bahagian hujung atau akhiran daripada rentetan yang diberikan dan kemudian keluarkan daripadanya dan tambah pada penghujung rentetan.

Panjang rentetan dan kekerapan aksara dalam rentetan tertentu tidak berubah, hanya susunan rentetan semasa yang berubah.

Sebagai contoh, diberi rentetan: epal

Maka putaran kiri rentetan yang diberikan adalah seperti berikut -

  • Epal

  • tolong

  • leapp

  • eappl

  • Epal

Kita dapat melihat bahawa putaran kelima rentetan yang diberikan adalah sama dengan rentetan semasa, jadi putaran selanjutnya tidak dapat dilakukan.

Putaran kanan rentetan yang diberikan adalah seperti berikut -

  • eappl

  • leapp

  • tolong

  • Priya

  • Epal

Kita dapat lihat bahawa pusingan ke-5 rentetan yang diberikan adalah sama dengan rentetan awal, jadi jika kita memutar rentetan itu lebih jauh, tidak akan ada hasil yang berbeza.

Daripada contoh di atas, kita boleh membuat kesimpulan bahawa dengan memutarkan rentetan ke kiri atau ke kanan seberapa banyak panjangnya, anda akan mendapat rentetan yang sama dengan rentetan awal. Jadi jika bilangan putaran yang diberikan lebih besar daripada panjang rentetan, maka kita boleh mengambil corak dan ia akan memberikan jawapan yang sama.

Kaedah

Kami telah melihat contoh asas pusingan kiri dan kanan rentetan, sekarang mari kita bincangkan langkah demi langkah untuk lebih memahami kod yang akan kami laksanakan nanti.

  • Mula-mula kita akan mendapatkan rentetan yang diberikan dalam satu pembolehubah dan menyimpan bilangan putaran yang diperlukan dalam pembolehubah lain. Kami juga boleh mencetaknya untuk perbandingan yang lebih baik.

  • Kami akan mencipta dua fungsi, yang pertama untuk putaran kiri dan yang kedua untuk putaran rentetan kanan.

  • Untuk setiap fungsi kita akan lulus rentetan yang diberikan dan bilangan pembolehubah putaran sebagai parameter.

  • Dalam fungsi putaran kiri, kami akan mengambil dua subrentetan yang mengandungi elemen k terakhir dan elemen kedua yang tinggal dan menukar kedudukannya.

  • Dalam fungsi putaran yang betul, kita akan mendapat dua subrentetan yang mengandungi elemen k pertama dan yang kedua mengandungi elemen yang tinggal dan menukar kedudukannya.

Contoh

// function for left rotation
function left_rotation(str,k){

   // getting prefix elements and remaining elements
   // switiching there place
   var new_str = str.substr(k) + str.substring(0,k);

   // printing the rotated string
   console.log("String after kth left rotation is: " + new_str);
}

// function for right rotation
function right_rotation(str,k){

   // getting suffix elements and remaining elements
   // switiching there place

   var new_str = str.substr(str.length - k) + str.substring(0,str.length-k);
   // printing the rotated string

   console.log("String after kth rigth rotation is: " + new_str);
}

// given string
var str = "apple"
var k = 2

// printing the given string
console.log("The given string is: " + str);

// getting left rotation

left_rotation(str,k);

// getting right rotation
right_rotation(str,k)
Salin selepas log masuk

Perhatian

Dalam program di atas, "k" atau bilangan putaran yang telah kita berikan adalah kurang daripada saiz rentetan, jika k lebih besar daripada saiz rentetan, maka kod di atas akan memberikan ralat, tetapi seperti berikut kita telah melihat di bahagian pengenalan, Putaran selepas panjang rentetan diulang beberapa kali boleh dikira dengan mendapatkan mod nombor semasa yang diberikan panjang rentetan, untuk berada di bahagian yang selamat kita sentiasa boleh melakukan ini -

k = k % (str.length)
Salin selepas log masuk

Di sini, str ialah rentetan yang diberikan.

Kerumitan masa dan ruang

Kerumitan masa kod di atas ialah O(N), dengan N ialah saiz rentetan yang diberikan. Dalam kod di atas, kami hanya mengambil aksara rentetan dan memecahkan serta menambahnya dengan cara yang berbeza, menjadikan kerumitan masa menjadi linear.

Kerumitan ruang kod di atas ialah O(1) kerana kami tidak menggunakan sebarang ruang tambahan, hanya menyimpan satu rentetan ke dalam rentetan lain, dan ruang itu digunakan untuk jawapan, jadi tiada ruang tambahan digunakan. p>

Kesimpulan

Dalam tutorial ini, kami telah melaksanakan program JavaScript untuk putaran kiri dan putaran kanan rentetan tertentu. Memutar rentetan ke kiri bermakna menggerakkan bilangan aksara tertentu mengikut lawan jam, dan memutar rentetan ke kanan bermakna menggerakkan bilangan aksara tertentu mengikut arah jam. Kami menggunakan konsep subrentetan yang dengannya kami memecahkan rentetan dan menambah akhiran atau awalan pada sisi lain. Kerumitan masa program yang diberikan ialah O(N) dan kerumitan ruang ialah O(1).

Atas ialah kandungan terperinci Program JavaScript untuk putaran kiri dan kanan rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!