欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

javascript 力扣刷题 680:验证回文字符串II

最编程 2024-06-08 08:00:38
...
var validPalindrome = function(s) {   //双指针解法,首先定首尾。   let left = 0,right = s.length-1   //其次进入到while循环当中。   while(left<right){     //先抓出两边指针不相同的特例     if(s[left] !== s[right]){       //由于本题需要给一次删除元素的机会,我们可以理解为,我们有一次跳过该元素的机会,于是乎我在下方创建了一个函数用于跳过后继续验证。       //关键语句在这一句:两种跳过的方法,用or来return出结果,只要有一个是true,则用掉这次机会之后依旧判断为回文字符串。      const res =  oneChance(left+1,right) || oneChance(left,right-1)       return res     }     left++     right--   }   //在指针走到left=right或者left>right还未返回false,则回文串成立。   return true   //下方是给一个机会跳过验证错误的函数,思路与上方基本一致。   function oneChance(left,right){     while(left<right){       if(s[left] !== s[right]){         return false       }       left++       right--     }     return true   } };