680. Valid Palindrome II

Posted johnnyzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了680. Valid Palindrome II相关的知识,希望对你有一定的参考价值。

package LeetCode_680

/**
 * 680. Valid Palindrome II
 * https://leetcode.com/problems/delete-operation-for-two-strings/description/
 *
 * Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either string.

Input: "sea", "eat"
Output: 2
Explanation: You need one step to make "sea" to "ea" and another step to make "eat" to "ea".

Note:
The length of given words won‘t exceed 500.
Characters in given words can only be lower-case letters.
 * */
class Solution {
    fun validPalindrome(s: String): Boolean {
        var l = -1
        var r = s.length
        while (l++ < r--){
            if (s[l]!=s[r]){
                return isPalindrome(s,l+1,r) || isPalindrome(s,l,r-1)
            }
        }
        return true
    }

    private fun isPalindrome(str: String, l_: Int, r_: Int): Boolean {
        var l = l_
        var r = r_
        while (l < r) {
            if (str[l] != str[r]) {
                return false
            }
            l++
            r--
        }
        return true
    }
}

 

以上是关于680. Valid Palindrome II的主要内容,如果未能解决你的问题,请参考以下文章

680. Valid Palindrome II

680. Valid Palindrome II

算法:680. Valid Palindrome II验证回文||

算法: 验证回文680. Valid Palindrome II

Leetcode_easy680. Valid Palindrome II

[leetcode-680-Valid Palindrome II]