首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
变回文串的最少插入次数
[编程题]变回文串的最少插入次数
热度指数:358
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个字符串,你可以在其任何位置插入新字符,请你算出要把这个字符串变成回文字符串最少需要几次插入操作。
数据范围:字符串的长度满足
,字符串中仅包含小写的英文字母
示例1
输入
"nowcoder"
输出
5
说明
可以插入至 "rednowcwonder"
示例2
输入
"aaa"
输出
0
备注:
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(12)
分享
纠错
提交结果有问题?
1个回答
2篇题解
开通博客
夏花灿烂秋叶静美
发表于 2022-04-26 10:57:52
动态规划 :初始化dp[i][i]=0, 从右下角开始比较i=n-2开始,第i个字符和其后的所有字符对比填充,若字符不相等,则dp[i][j]=min(dp[i][j-1],d[i+1][j])+1;若相等则dp[i][j]=d[i+1][j-1]。 n o w c
展开全文
要双休的闭门羹烹饪师进入人才库
发表于 2023-09-12 12:03:05
区间动态规划:按照区间dp的步骤来确定状态:dp[i][j]表示从i-j的字串变成回文串的最少插入次数,所以,i-j的字串一定是回文串。划分阶段:区间长度决策选择:原问题与子问题之间的关系是 若str[i] == str[j],则dp[i][j]
展开全文
问题信息
贪心
线段树
字符串
双指针
难度:
1条回答
12收藏
2076浏览
热门推荐
通过挑战的用户
查看代码
小巫20191...
2022-09-16 11:05:40
半个西瓜半个夏
2022-09-16 10:09:06
牛客19966...
2022-09-15 19:53:22
酋非天
2022-09-14 14:35:16
那就开摆
2022-09-07 09:32:35
相关试题
神奇的数字
排序
双指针
评论
(46)
最小面积子矩阵
动态规划
双指针
前缀和
评论
(44)
和为S的两个数字
数组
数学
双指针
评论
(1508)
来自
“一战通offer”互联...
属于组合逻辑电路是()。
数字电路
评论
(1)
如果通过这次面试我们单位录用了你,...
岗位认知
自我认知
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ public int minInsert (String str) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ int minInsert(string str) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param str string字符串 # @return int整型 # class Solution: def minInsert(self , str ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ public int minInsert (string str) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ function minInsert( str ) { // write code here } module.exports = { minInsert : minInsert };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param str string字符串 # @return int整型 # class Solution: def minInsert(self , str: str) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ func minInsert( str string ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ int minInsert(char* str ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param str string字符串 # @return int整型 # class Solution def minInsert(str) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ def minInsert(str: String): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ fun minInsert(str: String): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ public int minInsert (String str) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ export function minInsert(str: string): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ func minInsert ( _ str: String) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ pub fn minInsert(&self, str: String) -> i32 { // write code here } }
"nowcoder"
5
"aaa"
0