Rumah >hujung hadapan web >tutorial js >Soalan Algoritma JavaScript Penting untuk Amalan

Soalan Algoritma JavaScript Penting untuk Amalan

WBOY
WBOYasal
2024-08-28 06:05:32317semak imbas

Essential JavaScript Algorithm Questions for Practice

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.


1. Terbalikkan Rentetan

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"

2. Semak Palindrom

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

3. Cari Nombor Terbesar dalam Tatasusunan

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

4. FizzBuzz

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();

5. Memfaktorkan Nombor

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

6. Cari Perkataan Terpanjang dalam Rentetan

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

7. Alih Keluar Pendua daripada Tatasusunan

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]

Kesimpulan

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!

Selamat Mengekod??

Atas ialah kandungan terperinci Soalan Algoritma JavaScript Penting untuk Amalan. 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