Leetcode 680.验证回文字符串

验证回文字符串

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

示例 1:

输入: "aba"

输出: True

示例 2:

输入: "abca"

输出: True

解释: 你可以删除c字符。

注意:

  1. 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。

 

 

 1 class Solution {
 2     public boolean isPalindromeRange(String s, int i, int j) {
 3         for (int k = i; k <= i + (j - i) / 2; k++) {
 4             if (s.charAt(k) != s.charAt(j - k + i)) return false;
 5         }
 6         return true;
 7     }
 8     public boolean validPalindrome(String s) {
 9         for (int i = 0; i < s.length() / 2; i++) {
10             if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {
11                 int j = s.length() - 1 - i;
12                 return (isPalindromeRange(s, i+1, j) ||
13                         isPalindromeRange(s, i, j-1));
14             }
15         }
16         return true;
17     }
18 }

 

 

 

posted on 2019-02-19 12:43  kexinxin  阅读(147)  评论(0编辑  收藏  举报

导航