zoukankan      html  css  js  c++  java
  • LeetCode 680. Valid Palindrome II (验证回文字符串 Ⅱ)

    Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.

    Example 1:

    Input: "aba"
    Output: True
    

    Example 2:

    Input: "abca"
    Output: True
    Explanation: You could delete the character 'c'.
    

    Note:

    1. The string will only contain lowercase characters a-z. The maximum length of the string is 50000.

    题目标签:String

      题目给了我们一个String s,让我们判断它是否是palindrome,允许我们删除一个char。

      利用two pointers,left 和 right 从两边开始,问题在于,当遇到两个 char 不同的时候,我们需要分别删除left 和 right char 去判断它是不是 panlindrome,因为两个选择都有可能是palindrome。

      具体看code。

    Java Solution:

    Runtime beats 98.73% 

    完成日期:04/20/2018

    关键词:two pointers

    关键点:用 || 来 测试两个选择性

     1 class Solution 
     2 {
     3     public boolean validPalindrome(String s) 
     4     {
     5         char [] arr = s.toCharArray();
     6         int left = 0;
     7         int right = arr.length - 1;
     8         
     9         while(left < right)
    10         {
    11             if(arr[left] != arr[right])
    12             {
    13                 return isPalindrome(arr, left + 1, right) || isPalindrome(arr, left, right - 1);
    14             }
    15 
    16             left++;
    17             right--;
    18         }
    19         
    20         return true;
    21     }
    22     
    23     
    24     public boolean isPalindrome(char[] arr, int left, int right)
    25     {
    26         while(left < right)
    27         {
    28             if(arr[left] != arr[right])
    29                 return false;
    30             
    31             left++;
    32             right--;
    33         }
    34         
    35         return true;
    36     }
    37 }

    参考资料:https://leetcode.com/problems/valid-palindrome-ii/discuss/107716/Java-O(n)-Time-O(1)-Space

    LeetCode 题目列表 - LeetCode Questions List

    题目来源:https://leetcode.com/

  • 相关阅读:
    0909 初识编译原理
    校园跳蚤市场-Sprint计划
    校园跳蚤市场
    5.2-5.3
    5.1封装
    阅读2
    汉堡包
    五章-问题
    结对子作业 四则运算 V2.0
    四则运算升级版
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/8897970.html
Copyright © 2011-2022 走看看