zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 680 验证回文字符串 Ⅱ(暴力)

    680. 验证回文字符串 Ⅱ

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

    示例 1:

    输入: “aba”
    输出: True
    示例 2:

    输入: “abca”
    输出: True
    解释: 你可以删除c字符。
    注意:

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

    PS:
    我只允许有一次跳过,终止条件加上了wrongCount 》=2

    class Solution {
           public boolean validPalindrome(String s) {
            if( s == null || s.isEmpty()) {
            	return true;
            }
            
            return validPalindrome(s, 0, s.length()-1, 0);
        }
    	
    	public boolean validPalindrome(String s, int left, int right, int wrongCount) {
    		if( wrongCount >= 2) {
    	    	return false;
    	    }
            while( left < right) {
            	if( s.charAt(left) == s.charAt(right)) {
            		left++;
            		right--;
            	}else {
            		return validPalindrome(s, left, right-1, wrongCount+1)
            				|| validPalindrome(s, left + 1, right, wrongCount + 1);
            	} 
            }
            return true;
        }
    }
    
  • 相关阅读:
    rip协议
    IP地址的计算以及子网掩码的计算
    jQuery知识点
    JavaScript 语言编程学习路线
    JS中AJAX知识
    .以及JDK1.5ConcurrentHashMap新特性
    Java程序执行顺序
    观察者设计模式
    Servlet中Filter的学习
    JDBC和连接池知识点
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946289.html
Copyright © 2011-2022 走看看