Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript lấy một chuỗi, str, làm đối số đầu tiên và duy nhất.
Chức năng của chúng tôi có thể xóa nhiều nhất một ký tự từ chuỗi str và chúng tôi được yêu cầu kiểm tra xem chúng tôi có thể biến nó thành một palindrome khi làm như vậy hay không.
Ví dụ:nếu đầu vào của hàm là
Đầu vào
const str = 'dr.awkward';
Đầu ra
const output = true;
Giải thích đầu ra
Bởi vì nếu chúng ta xóa ‘.’ Khỏi chuỗi,
Ví dụ
Sau đây là mã -
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));
Đầu ra
true