เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
หน้าที่ของฟังก์ชันของเราคือตรวจสอบว่าเราสามารถทำให้สตริงนั้นเป็นสตริงพาลินโดรมได้หรือไม่ โดยการลบอักขระออกจากสตริงไม่เกินหนึ่งตัว หากเราทำได้ ฟังก์ชันควรคืนค่า จริง เท็จ มิฉะนั้น
ตัวอย่างเช่น −
หากสตริงอินพุตเป็น −
const str = 'kjlk';
จากนั้นผลลัพธ์ควรเป็น −
const output = true;
เพราะการลบ 'l' ออกจากสตริง จะเหลือเพียง 'kjk' ซึ่งเป็นสตริงพาลินโดรม
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const str = 'kjlk';
const isPalindrome = (str = '', start, end) => {
while (start < end) {
if (str[start] != str[end]) {
return false;
};
start ++;
end --;
};
return true;
};
const canMakePalindrome = (str = '') => {
let left = 0, right = str.length - 1;
while (left < right - 1) {
if (str[left] !== str[right]) {
if (isPalindrome(str, left, right - 1)) {
return true;
};
if (isPalindrome(str, left + 1, right)) {
return true;
};
return false;
}else {
left ++;
right --;
};
};
return true;
}
console.log(canMakePalindrome(str)); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true