zoukankan      html  css  js  c++  java
  • 1332. 删除回文子序列

    地址:https://leetcode-cn.com/problems/remove-palindromic-subsequences/

    <?php
    /**
    给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。
    
    返回删除给定字符串中所有字符(字符串为空)的最小删除次数。
    
    「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。
    
    「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。
    
     
    
    示例 1:
    
    输入:s = "ababa"
    输出:1
    解释:字符串本身就是回文序列,只需要删除一次。
    示例 2:
    
    输入:s = "abb"
    输出:2
    解释:"abb" -> "bb" -> "".
    先删除回文子序列 "a",然后再删除 "bb"。
    示例 3:
    
    输入:s = "baabb"
    输出:2
    解释:"baabb" -> "b" -> "".
    先删除回文子序列 "baab",然后再删除 "b"。
    示例 4:
    
    输入:s = ""
    输出:0
     
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/remove-palindromic-subsequences
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
     */
    class Solution {
    
        /**
         * @param String $s
         * @return Integer
         */
        function removePalindromeSub($s) {
    // step1: 判断字符串是否回空
            if (strlen($s) === 0) {
                return 0;
            }
            // step2: 反转字符串判断是否跟原先一致,如果一致则表示是回文
            if ($s === strrev($s)) {
                return 1;
            }
            // step3: 其他情况为非回文, 最多两次, 第一次删除a回文子序列, 第二次删除b回文子序列就可以了
            return 2;
        }
    }
  • 相关阅读:
    jquery-validate v1.19.2 源码分析
    jquery之遍历-Section04
    jquery之元素-Section03
    jquery之效果-Section02
    jquery之入门-Section01
    CSS世界(七)思维导图
    shell文件处理awk
    jquery插件懒加载
    jquery插件改变背景色
    jquery多库共存
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/13745958.html
Copyright © 2011-2022 走看看