680. 验证回文字符串 Ⅱ

680. 验证回文字符串 Ⅱ

难度:简单 2020/5/19每日一题打卡√
题目描述
680. 验证回文字符串 Ⅱ_第1张图片
解题思路
一般字符串的题目都优先想到双指针,回文字符串更是这样。
这道题变化的地方是可以删掉一个字符,那么在遇到不一样的字符时,要么删掉左边的,要么删掉右边的,再继续判断接下来的字符串是不是回文字符串。

public boolean validPalindrome(String s) {
     
		 char[] str = s.toCharArray();
		 int i = 0,j = str.length-1;
		 while(i <= j) {
     
			 char p = str[i];
			 char q = str[j];
			 if(p == q) {
      
				 i++;j--;
			 }else {
     //如果遇到不一样的删掉左边或者右边
				 return ishuiwen(str, i+1, j) || ishuiwen(str, i, j-1); 
			}
		 }
		 return true;
	    }
	 public boolean ishuiwen(char[] str,int i,int j) {
     
		 while(i <= j) {
     
			 if(str[i] == str[j]) {
     
				 i++;j--;
			 }else {
     
				return false;
			}
		 }
		 return true;
	 }

680. 验证回文字符串 Ⅱ_第2张图片

你可能感兴趣的:(力扣刷题笔记)