首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
添加最少的字符让字符串变为回文字符串(1)
[编程题]添加最少的字符让字符串变为回文字符串(1)
热度指数:1861
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个字符串str,如果可以在str的任意位置添加字符,请返回在添加字符最少的情况下,让str整体都是回文字符串的一种结果。
输入描述:
输入包含一行字符串,代表str
。
输出描述:
输出一行,代表返回的字符串。
示例1
输入
ABA
输出
ABA
示例2
输入
AB
输出
ABA
备注:
时间复杂度
,空间复杂度
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(20)
邀请回答
收藏(36)
分享
纠错
提交结果有问题?
1个回答
1篇题解
添加回答
0
JavaScript
猪八戒吃猴子
// 一直提示时间复杂度或循环有误,但是在本地自测毫无问题。。求教
var arr=readline().split('');
var len=arr.length;
var max=5000;
var mystr='';
for(var i=len-1;i>=0;i--){
// 注意 字符串为单个字符时
if(len==1){
print(arr[0]);
break;
}else{
// 中心点时空格/元素
mymax(arr.slice(0,i),arr.slice(i+1),arr[i])
mymax(arr.slice(0,i),arr.slice(i),[])
}
}
function mymax(left,right,mid){
var j=0;
while(true){
if(left[left.length-1-j]!=right[j]){
if(left.length<=right.length){
left.splice(left.length-j,0,right[j])
}else{
right.splice(j,0,left[left.length-1-j])
}
}
if((left.length==right.length)&&j==right.length-1&&left[0]==right[j]){
break;
}
j++;
}
var lmax=left.concat(mid).concat(right);
if(lmax.length<max){
max=lmax.length;
mystr=lmax.join('')
}
}
if(len!=1){
print(mystr)
}
发表于 2022-10-21 15:32:05
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
字符串
模拟
上传者:
小小
难度:
1条回答
36收藏
6947浏览
热门推荐
通过挑战的用户
查看代码
wangyua...
2022-12-02 22:26:23
牛客25306...
2022-11-13 16:20:41
DBCGary
2022-09-02 22:21:34
RandomAC
2022-08-31 12:48:17
°sunshi...
2022-08-29 22:59:20
相关试题
一个10*10的矩阵(可以理解为棋...
去哪儿
模拟
评论
(0)
有两个文件context.txt和...
去哪儿
模拟
评论
(4)
一个文件里有10万个随机正整数,按...
去哪儿
堆
模拟
评论
(4)
相关性分析有哪些?
评论
(1)
如何检验聚类分析结果
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
ABA
ABA
AB
ABA