برنامه نویسی

قسمت 01 – نحوه بررسی Palindrome در جاوا اسکریپت

یکی از سوالات معروف مصاحبه جاوا اسکریپت. نحوه بررسی palindrome در جاوا اسکریپت پالیندروم کلمه یا عبارتی است که به صورت معکوس نیز خوانده می شود. برخی از نمونه ها عبارتند از: مدنی، روتور، ظهر، سطح، مامان، خانم و ماشین مسابقه.

حالا بیایید ببینیم که چگونه این مشکل را در جاوا اسکریپت حل کنیم. اکثر برنامه نویسان به روشی مستقیم ادامه می دهند و از حلقه برای حل این مشکل استفاده می کنند. اجازه دهید ابتدا آن راه را بررسی کنیم:

const isPalindrome = (string) => {
  const length = string.length;
  if (!string) return false;
  for (let i = 0; i < length; i++) {
    if (string[i] !== string[length - i - 1]) {
      return false;
    }
  }
  return true;
}

// isPalindrome('madam') prints true
// isPalindrome('hello') prints false

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این خوب است و مشکل در دست ما را حل می کند. اما آیا می توانیم چیزی را در این برنامه بهبود بخشیم. اگر می بینید، برای تأیید اینکه آیا رشته یک پالیندروم است یا نه، فقط باید نیمی از رشته را بررسی کنیم. به عنوان مثال، اگر طول رشته 10 کاراکتر باشد، می توانیم فقط 5 کاراکتر را بررسی و مقایسه کنیم تا پالیندروم را تأیید کنیم. اگر طول رشته یک عدد فرد باشد، فرض کنید 5 کاراکتر باشد، باید فقط 2 کاراکتر را بررسی کنیم. رشته بدون توجه به کاراکتر میانی در صورت بقیه کاراکترها، پالیندروم است

اکنون با اعمال این مورد در برنامه خود، می توانیم تکرار حلقه را به نصف کاهش دهیم.

const isPalindrome = (string) => {
  const mid = Math.floor(string.length / 2);
  const length = string.length
  if (!string) return false;
  for (let i = 0; i < mid; i++) {
    if (string[i] !== string[length - i - 1]) {
      return false;
    }
  }
  return true;
}

// isPalindrome('rotor') prints true
// isPalindrome('hello') prints false
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

طبق معمول این یکی از راه های حل مشکل است. زیر راه حل خود کامنت کنید

پالیندروم را در YouTube ما بررسی کنید


نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا