قسمت 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 ما بررسی کنید