关于算法:算法双指针思想

leetcode

125. 验证回文串

本人写的

    var isPalindrome = function(s){
      let i = 0;
      let j = s.length -1;

      while(i <j){
        if(!isValid(s[i])){
          continue
          i++
        }
        if(!isValid(s[j])){
          continue
          j--
        }
        if(s[i] != s[j]){
          return false
        }
        return true;
      }
    }
    
    var isValid = function (c) {
      return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')
    }

正确

var isPalindrome = function(s) {
  var s = s.toUpperCase();
  let i =0;
  let j = s.length -1;
  while(i <j){
    if(!isValied(s[i])){
      i++
      continue
    }
    if(!isValied(s[j])){
      j--
      continue
    }
    if(s[i] != s[j]){
      return false;
    }
    i++
    j--
  }
  return true
};

var isValied = function(c){
  return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理