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;
        }
    }
  • 相关阅读:
    Maven中profile和filtering实现多个环境下的属性过滤
    Java 非法字符: 65279的解决办法
    MySQL军规
    php 时间日期函数
    函数的引入
    linux下修改mysql版本5.7 修改默认字符集
    mysql语句规范
    永久修改mysql提示符
    复杂函数
    函数的特性
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/13745958.html
Copyright © 2011-2022 走看看