给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: "aba"
输出: True
示例 2:
输入: "abca"
输出: True
解释: 你可以删除c字符。
示例N:
s = "abc"
s = "abae"
s = "eexexe"
s = "zeeee"
注意:
字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。
解法一: 对splice()函数不够了解,用了好长的时间去检测,最后发现,这个函数不能用于赋值,赋值会得到删除对象而不是原对象,水平有限只好用这样写了。以后发现更好的再去补个解法二
/**
* @param date 2018/11/10 晚上
*/
var validPalindrome = function(s) {
var s1=s.split("")
var s2=s.split("")
var z1=s.split("")
var z2=s.split("")
z1=z1.reverse()
z2=z2.reverse()
var j=0;
for(var i=0;i<s1.length;i++){
if(s1[i]!=z1[i] && j==0){
j+=1;
x=-(i+1);
s1.splice(i,1)
z1.splice(x,1)
s2.splice(x,1)
z2.splice(i,1)
}
}
var result =1;
for(var i=0;i<s1.length;i++){
if(s1[i]!=z1[i]){
result=0;
}
}
if(result===0){
for(var i=0;i<s2.length;i++){
if(s2[i]!=z2[i]){
return false;;
}
}
}
return true;
};