1312. 让字符串成为回文串的最少插入次数

简介: 1312. 让字符串成为回文串的最少插入次数

@TOC


1312. 让字符串成为回文串的最少插入次数

给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。

请你返回让 s 成为回文串的 最少操作次数 。

「回文串」是正读和反读都相同的字符串。

示例 1:

输入:s = "zzazz"
输出:0
解释:字符串 "zzazz" 已经是回文串了,所以不需要做任何插入操作。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-insertion-steps-to-make-a-string-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

动态规划,范围尝试模型
dpi:str从i到j需要插入多少个字符形成回文串
在这里插入图片描述左下半区没用,对角线填0
在这里插入图片描述
倒数第二条对角线L==R-1
相等就埴0个,不等就埴1个

普遍位置:
dpi有3种情况
在这里插入图片描述

1)假设i到j-1都已经是回文串,我们只需在i-1位置加上j的字符
dpi+1
在这里插入图片描述

2)假设i+1到j都已经是回文串,我们只需在i位置加上j的字符
即dpi+1+1
在这里插入图片描述
3)假设i+1到j-1都已经是回文串,并且i与j相等
dpi

代码

class Solution {
    public int minInsertions(String s) {
        char[] str=s.toCharArray();
        int n=str.length;
        if(n==0||n==1){
            return 0;
        }
        int[][] dp=new int[n][n];
        for(int i=0;i<n-1;i++){
            dp[i][i+1]=str[i]==str[i+1]?0:1;
        }
        for(int i=n-3;i>=0;i--){
            for(int j=i+2;j<n;j++){
                dp[i][j]=Math.min(dp[i+1][j],dp[i][j-1])+1;
                if(str[i]==str[j]){
                    dp[i][j]=Math.min(dp[i][j],dp[i+1][j-1]);
                }
            }
        }
        return dp[0][n-1];
    }
}
相关文章
|
机器学习/深度学习 人机交互 计算机视觉
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
|
12月前
|
人工智能 自然语言处理 测试技术
通义灵码一周年
【10月更文挑战第5天】通义灵码一周年体验
212 5
|
存储 缓存 安全
阿里云EMR数据湖文件系统: 面向开源和云打造下一代 HDFS
本文作者详细地介绍了阿里云EMR数据湖文件系统JindoFS的起源、发展迭代以及性能。
72988 79
Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
|
安全 Java 网络安全
如何处理Java中的SSLException异常?
如何处理Java中的SSLException异常?
|
存储 数据安全/隐私保护
一键云端,AList 整合多网盘,轻松管理文件多元共享
一键云端,AList 整合多网盘,轻松管理文件多元共享
2196 0
|
人工智能 自然语言处理 搜索推荐
AIGC在商业银行中的应用现状
【1月更文挑战第11天】AIGC在商业银行中的应用现状
444 3
AIGC在商业银行中的应用现状
|
传感器
STM32驱动HC-SR04超声波模块
STM32驱动HC-SR04超声波模块
630 0
|
JavaScript 计算机视觉
Vue回炉重造之封装一个实用的人脸识别组件
人脸识别技术现在越来越火,那么我们今天教大家实现一个人脸识别组件。
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
1242 0
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)