ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
ฟังก์ชันของเราอาจลบ มากที่สุด อักขระหนึ่งตัวจากสตริง str และเราต้องตรวจสอบว่าเราสามารถทำให้มันเป็นพาลินโดรมได้หรือไม่
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ
ป้อนข้อมูล
const str = 'dr.awkward';
ผลผลิต
const output = true;
คำอธิบายผลลัพธ์
เพราะถ้าเราลบ '.' ออกจากสตริง
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const str = 'dr.awkward';
const validPalindrome = (str = '') => {
const valid = (left, right) => {
for (let i = left; i <= Math.floor((left + right) / 2); i++) {
if (str[i] !== str[right - (i - left)]) {
return false
}
}
return true
}
for (let i = 0; i <= Math.floor(str.length / 2); i++) {
const right = str.length - 1 - i
if (str[i] !== str[right]) {
return valid(i, right - 1) || valid(i + 1, right)
}
}
return true
}
console.log(validPalindrome(str)); ผลลัพธ์
true