การเข้ารหัส: Palindromes ใน JavaScript

Jan 22 2023
รหัสนี้กำหนดฟังก์ชันที่เรียกว่า “isPalindrome” ที่รับอินพุตเดียว “S” ซึ่งเป็นสตริงที่จะตรวจสอบเพื่อดูว่าเป็น palindrome หรือไม่ palindrome คือคำ วลี ตัวเลข หรือลำดับอื่นๆ ของอักขระที่อ่านไปข้างหน้าและย้อนกลับเหมือนกัน

รหัสนี้กำหนดฟังก์ชันที่เรียกว่า “isPalindrome” ที่รับอินพุตเดียว “S” ซึ่งเป็นสตริงที่จะตรวจสอบเพื่อดูว่าเป็น palindrome หรือไม่ palindrome คือคำ วลี ตัวเลข หรือลำดับอื่นๆ ของอักขระที่อ่านไปข้างหน้าและย้อนกลับเหมือนกัน

ขั้นตอนแรกในฟังก์ชันคือการแปลง "S" เป็นตัวพิมพ์เล็กโดยใช้เมธอด "toLocaleLowerCase()" จากนั้นใช้เมธอด "replace()" เพื่อลบอักขระที่ไม่ใช่ตัวเลขและตัวอักษรทั้งหมดโดยแทนที่ด้วยสตริงว่าง สิ่งนี้ทำเพื่อให้อักขระเดียวที่เหลืออยู่ในสตริงคือตัวอักษรและตัวเลข ซึ่งจะทำให้ง่ายต่อการตรวจสอบว่าสตริงนั้นเป็นพาลินโดรมหรือไม่

จากนั้นฟังก์ชันจะเริ่มต้นตัวแปรสองตัวคือ "ซ้าย" และ "ขวา" โดยมีค่า 0 และความยาวของ "S" ลบ 1 ตามลำดับ ตัวแปรเหล่านี้จะใช้ในการวนซ้ำผ่านอักขระของ "S" ในลูปแบบ while ซึ่งจะทำงานจนกว่า "ซ้าย" จะไม่น้อยกว่า "ขวา" อีกต่อไป

function isPalindrome(S) {
  S = S.toLocaleLowerCase().replace(/[\W_]/g, '') 
  let left = 0
  let right = S.length - 1

  while (left < right) {
    if (S[left] !== S[right]) {
      return console.log(false)
    }
    left++
    right--
  }
  return console.log(true)
}
isPalindrome('abda')

เมื่อลูป while เสร็จสิ้น หมายความว่าสตริงทั้งหมดได้รับการตรวจสอบและอักขระทั้งหมดเท่ากัน ดังนั้นฟังก์ชันจึงคืนค่า "จริง" โดยใช้ console.log

สุดท้าย ฟังก์ชันนี้ถูกเรียกโดยส่ง "abda" เป็นอินพุต ซึ่งจะถูกประเมินว่าเป็นจริงเนื่องจาก 'abda' เป็นพาลินโดรม

มีความสุขในการเรียนรู้

สนับสนุนสิ่งพิมพ์ของเราโดยติดตาม

การเข้ารหัส: การหาค่าต่ำสุด/สูงสุดในอาร์เรย์โดยใช้ JavaScript