Sama ada anda sedang bersedia untuk temu duga pengekodan atau ingin mempertajam kemahiran menyelesaikan masalah anda, mempraktikkan algoritma adalah kunci untuk menguasai JavaScript. Algoritma bukan sahaja untuk pembangun lanjutan—ia adalah asas untuk memahami cara memanipulasi data dan mengoptimumkan prestasi dalam aplikasi anda.
Dalam siaran ini, kami akan meneroka beberapa soalan algoritma JavaScript penting yang harus dipraktikkan oleh setiap pembangun. Soalan ini merangkumi pelbagai topik, daripada manipulasi tatasusunan asas kepada pengendalian rentetan yang lebih kompleks, memberikan anda asas yang kukuh untuk menangani masalah yang lebih lanjut.
Masalah:
Tulis fungsi yang mengambil rentetan sebagai input dan mengembalikan rentetan terbalik.
Contoh:
// Input: "hello" // Output: "olleh"
Penyelesaian:
Terdapat pelbagai cara untuk membalikkan rentetan dalam JavaScript. Salah satu kaedah paling mudah ialah membahagikan rentetan kepada tatasusunan aksara, membalikkan tatasusunan itu dan kemudian menyambungkannya semula menjadi rentetan.
function reverseString(str) { return str.split('').reverse().join(''); } console.log(reverseString("hello")); // Output: "olleh"
Masalah:
Palindrom ialah perkataan atau frasa yang dibaca sama ke belakang dengan ke hadapan. Tulis fungsi untuk menyemak sama ada rentetan yang diberikan ialah palindrom.
Contoh:
// Input: "racecar" // Output: true // Input: "hello" // Output: false
Penyelesaian:
Anda boleh menggunakan semula kaedah pembalikan rentetan untuk menyemak sama ada rentetan asal adalah sama dengan rentetan sebaliknya.
function isPalindrome(str) { const reversedStr = str.split('').reverse().join(''); return str === reversedStr; } console.log(isPalindrome("racecar")); // Output: true console.log(isPalindrome("hello")); // Output: false
Masalah:
Tulis fungsi yang mengambil tatasusunan nombor sebagai input dan mengembalikan nombor terbesar.
Contoh:
// Input: [1, 2, 3, 4, 5] // Output: 5
Penyelesaian:
Anda boleh menggunakan kaedah Math.max dalam kombinasi dengan operator spread untuk mencari nombor terbesar.
function findLargest(arr) { return Math.max(...arr); } console.log(findLargest([1, 2, 3, 4, 5])); // Output: 5
Masalah:
Tulis fungsi yang mencetak nombor daripada 1 hingga 100. Tetapi untuk gandaan tiga, cetak "Fizz" dan bukannya nombor, dan untuk gandaan lima, cetak "Buzz". Untuk nombor yang merupakan gandaan tiga dan lima, cetak "FizzBuzz".
Penyelesaian:
Ini ialah soalan temu duga klasik yang menguji keupayaan anda untuk melaksanakan gelung asas dan syarat.
function fizzBuzz() { for (let i = 1; i <= 100; i++) { if (i % 3 === 0 && i % 5 === 0) { console.log("FizzBuzz"); } else if (i % 3 === 0) { console.log("Fizz"); } else if (i % 5 === 0) { console.log("Buzz"); } else { console.log(i); } } } fizzBuzz();
Masalah:
Tulis fungsi yang mengembalikan faktorial bagi suatu nombor. Faktorial bagi nombor n ialah hasil darab semua integer positif kurang daripada atau sama dengan n.
Contoh:
// Input: 5 // Output: 120 (5 * 4 * 3 * 2 * 1)
Penyelesaian:
Faktorial boleh diselesaikan secara rekursif atau berulang. Berikut ialah contoh menggunakan rekursi:
function factorialize(num) { if (num === 0 || num === 1) { return 1; } else { return num * factorialize(num - 1); } } console.log(factorialize(5)); // Output: 120
Masalah:
Tulis fungsi yang mengambil rentetan sebagai input dan mengembalikan panjang perkataan terpanjang.
Contoh:
// Input: "The quick brown fox jumped over the lazy dog" // Output: 6 (jumped)
Penyelesaian:
Anda boleh membelah rentetan kepada tatasusunan perkataan dan kemudian mengurangkan tatasusunan untuk mencari perkataan terpanjang.
function findLongestWord(str) { const words = str.split(' '); let maxLength = 0; for (let word of words) { if (word.length > maxLength) { maxLength = word.length; } } return maxLength; } console.log(findLongestWord("The quick brown fox jumped over the lazy dog")); // Output: 6
Masalah:
Tulis fungsi yang mengalih keluar nilai pendua daripada tatasusunan.
Contoh:
// Input: [1, 2, 2, 3, 4, 4, 5] // Output: [1, 2, 3, 4, 5]
Penyelesaian:
Salah satu cara paling mudah untuk mengalih keluar pendua ialah menggunakan Set, yang hanya menyimpan nilai unik.
function removeDuplicates(arr) { return [...new Set(arr)]; } console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5])); // Output: [1, 2, 3, 4, 5]
Mempraktikkan soalan algoritma JavaScript asas ini akan meningkatkan kemahiran menyelesaikan masalah anda dan menyediakan anda untuk cabaran yang lebih maju. Dengan menguasai asas ini, anda akan lebih bersedia untuk menangani algoritma dan struktur data yang kompleks, yang penting untuk menulis kod yang cekap dan boleh skala. Teruskan berlatih dan anda akan melihat peningkatan dalam kedua-dua kelajuan dan ketepatan pengekodan anda!
Atas ialah kandungan terperinci Soalan Algoritma JavaScript Penting untuk Amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!