在 JavaScript 中使用至多一次删除形成回文串
问题
我们需要编写一个 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP