aba 回文练习 -- 参考罗大神的

经典编程题——回文问题 编程题:回文问题 马上要找工作了,最近一直在刷题,决定吧自己遇到的感觉比较好的题分享在博客里面,大家可以参考参考(其实我也不懂那些题好,那些题不好,哈哈)。 下面是最近做的一道关于回文的笔试题,大家看看: “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有... 阅读详情
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
#define maxn 1024
#define parr(arr,n) printf(#arr":");for(int kk=0;kk<n;kk++) printf("%d ",arr[kk]);puts("")


int bufa[maxn],bufb[maxn],bufs[maxn],bufv[maxn];
int sa[maxn],rank[maxn],height[maxn];


int cmp(int* src,int a,int b,int l){
return src[a]==src[b]&&src[a+l]==src[b+l];
}
void da(int *src,int sz,int m)
{
int i;
int *x=bufa,*y=bufb,*t;
for(i=0;i<m;i++)     bufs[i]=0;
for(i=0;i<sz;i++)    bufs[x[i]=src[i]]++;
for(i=1;i<m;i++)    bufs[i]+=bufs[i-1];
for(i=sz-1;i>=0;--i) sa[--bufs[src[i]]]=i;


int p,j;
for(j=1,p=1;p<sz;j*=2,m=p)
{
for(p=0,i=sz-j;i<sz;i++) y[p++]=i;
for(i=0;i<sz;i++) if(sa[i]>=j) y[p++]=sa[i]-j;

for(i=0;i<sz;i++) bufv[i]=x[y[i]];
for(i=0;i<m;i++) bufs[i]=0;
for(i=0;i<sz;i++)   bufs[bufv[i]]++;
for(i=1;i<m;i++) bufs[i]+=bufs[i-1];
for(i=sz-1;i>=0;--i) sa[--bufs[bufv[i]]]=y[i];


for(t=x,x=y,y=t,p=1,i=1,x[sa[0]]=0;i<sz;++i)
 x[sa[i]]=cmp(y,sa[i],sa[i-1],j)?p-1:p++;
}
}


void cal_height(int *src, int sz)
{
int i,k,j;
for(i=1;i<sz;++i) rank[sa[i]]=i;
for(k=0,i=0;i<sz;height[rank[i++]]=k)
 for(k?k--:0,j=sa[rank[i]-1];src[i+k]==src[j+k];k++)
;
}


int RMQ[maxn],mm[maxn];
int best[20][maxn];


void initRMQ(int n)
{
int i,j;
for(mm[0]=-1,i=1;i<n;i++)
 mm[i]=(i&(i-1))==0 ? mm[i-1]+1:mm[i-1];
for(i=1;i<n;i++) best[0][i]=i; //i=1
int a,b;
for(i=1;i<=mm[n];i++)
 for(j=1;j<n-(1<<i)+1;j++){ //j=1
a=best[i-1][j];
b=best[i-1][j+(1<<(i-1))];
best[i][j]=RMQ[a]<RMQ[b] ? a:b;
 }
}


int askRMQ(int a,int b)
{
int t;
t=mm[b-a+1];
b-=((1<<t)-1);
a=best[t][a];
b=best[t][b];
return RMQ[a]<RMQ[b] ? a:b;
}


int lcp(int a,int b)
{
a=rank[a];
b=rank[b];
if(a>b) {int t=a;a=b;b=t;}
return height[askRMQ(a+1,b)];
}


int main()
{
char src[maxn],c;
int dsrc[maxn],i,len,n;
bzero(src,sizeof(src));
i=0;
while((c=getchar())!='\n') src[i++]=c;
if(c!='\n') while(getchar()!='\n');
len=strlen(src);
for(i=0;i<len;i++) dsrc[i]=src[i];
dsrc[i++]=1;
n=2*len+1;
for(;i<n;i++) dsrc[i]=src[n-i-1];      //abc -- > abc1cba
dsrc[n++]=0;


printf("n=%d\n",n);
parr(dsrc,n);
da(dsrc,n,128);
parr(sa,n);
cal_height(dsrc,n);


for(i=0;i<n;i++) RMQ[i]=height[i];
initRMQ(n);


parr(height,n);
parr(rank,n);


n--;
int ans=0,w,k;
for(i=0;i<len;i++){
k=lcp(i,n-i);
if(2*k>ans) ans=2*k,w=i-k;
k=lcp(i,n-i-1);
if(2*k-1>ans) ans=2*k-1,w=i-k+1;
}
src[w+ans]=0;
printf("%s\n",src+w);
}
【华为OD机试真题 C语言】72、没有回文串 | 机试真题+思路参考+代码解析 现在已经存在一个不包含回文串的字符串,字符串的字符都是在英语字母的前N个,字符串不包含任何长度大于等于2的回文串;第二行输入一个字符串(输入长度 阅读详情

相关推荐

【华为OD机试真题 JS语言】72、没有回文串 | 机试真题+思路参考+代码解析

>回文串的定义:正读和反读都一样的字符串。 >  现在已经存在一个不包含回文串的字符串,字符串的字符都是在英语字母的前N个,字符串不包含任何长度大于等于2的回文串; >  请找出下一个字序的不包含回文串的、字符都是在英语字母的前N个、长度相同的字符串。 如果不存在,请输出NO。

KJ.JK 2435

Python处理字符串中的回文串(“回文串”是一个正读和反读都一样的字符串,比如“level”、“aba”或者“noon”、“aa”等等就是回文串)

#coding:utf-8 def no_abba(str): #破坏回文串使之不能包含回文 strnew ="" for i in range(len(str)): if len(strnew)==0: strnew=str[i] if (len(strnew)==1)and (strnew[-1]!=str[i]): ...

sunkaivg的博客 4500

【华为OD机试真题 C++语言】72、没有回文串 | 机试真题+思路参考+代码解析

回文串的定义:正读和反读都一样的字符串。 >  现在已经存在一个不包含回文串的字符串,字符串的字符都是在英语字母的前N个,字符串不包含任何长度大于等于2的回文串; >  请找出下一个字序的不包含回文串的、字符都是在英语字母的前N个、长度相同的字符串。 如果不存在,请输出NO。

KJ.JK 1245

判断一个链表是否为回文结构思路

回文串为首尾对称的字符串: 如a,aba,abba等 单链表思路 1.将字符读入链表 2.找到链表中点 3.将链表从中点断开成2条,将后半条反转 4.比较两条链表是否相等(比较次数以少的为准(长度为奇数时)) //解法1.数组存储判断一个链表是否为回文链 public class TestHuiWen { static class MyNode{ public int data; public MyNode next; ..

luzhensmart的专栏 266

从GEFCom到UCI:手把手教你构建电力负荷时空预测模型(Python版)

本文详细介绍了如何从GEFCom到UCI数据集构建电力负荷时空预测模型(Python版),涵盖数据集解析、时空特征工程、模型架构设计及工业部署优化。通过多任务图神经网络(MTGNN)实现高精度预测,并结合边缘计算和在线学习机制提升实际应用效果,为能源管理系统提供可靠解决方案。

lambda的博客 813

从报错到定位:Memtest86 DQ位算法解析与实践指南

本文深入解析了Memtest86内存测试工具报错信息的解读方法,重点介绍了通过地址解析、数据转换、位比对和DQ定位四步算法,精准锁定故障DQ位的实践流程。文章以DDR4和DDR5为例,详细拆解了从十六进制报错到二进制比对的完整步骤,并提供了从单个报错分析到故障模式诊断的进阶指南,帮助用户将抽象的报错信息转化为具体的维修或排查依据。

sre5engineer的博客 486

12 判断输入的字符串是否为回文串

参考:算法二十五:回文串 回文串:字符串倒序写出来和该字符串相同。比如aba,倒序写出来也是aba,故aba是回文串。而abab不是回文串,因为倒过来写是baba。 编写程序判断输入的字符串是否为回文串。 ...

闲狗的博客 2046

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 249

python实现寻找最长回文子串

题目描述 给定一个字符串s,找到 s中最长的回文子串。你可以假设s的最大长度为 1000。 LeetCode原题地址:https://leetcode-cn.com/problems/longest-palindromic-substring/ 测试用例 示例 1 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2 输入: “cbbd” 输出: “bb” 解题代码和思路 遍历所有子串寻找回文子串 class Solution(object):

修炼之路 5444

SAP 屏幕增强:客户商主数据屏幕增强(KNA1、KNB1、KNVV)

本文介绍了SAP系统中针对客户主数据(KNA1、KNB1、KNVV)进行屏幕增强的具体实现方法。主要内容包括:1)在SPRO配置中创建新条目;2)通过SE80创建函数组和程序(LZKNA1TOP等);3)设置子屏幕9001并添加自定义结构字段;4)利用BADI(CUSTOMER_ADD_DATA等)实现数据交互逻辑。文章分别详细说明了针对客户主数据的一般数据(KNA1)、公司代码数据(KNB1)和销售数据(KNVV)三类不同数据的增强配置步骤,包括函数模块创建、屏幕设置和BADI方法调用等关键技术点。

SAP ABAP开发技能记录分享 1617

Mac终端SSH连接腾讯云服务器保姆级教程(附秘钥管理技巧)

本文提供Mac终端SSH连接腾讯云服务器的详细教程,涵盖密钥生成、权限设置、连接优化及高级管理技巧。通过清晰的步骤和实用配置,帮助用户安全高效地管理远程服务器连接,特别适合开发者和运维人员参考。

weixin_29248313的博客 456

回文串,回文数,最长回文子串

文章目录一. 回文串二. 回文数三. 最长回文子串 一. 回文串 判断输入的字符串是否为回文串 Input : a s d f d s a return : true 解题思路: 在此处我想到的是快排的思想: 定义两个标兵,让后让 left 和 right 从字符串两端向中心遍历 如果left和right指向的字符不相等返回false,当left==right时为回文串 public ...

iqqcode 783

LightTools手动创建菲涅尔透镜的5个实用技巧(附详细步骤图)

本文详细介绍了在LightTools中手动创建菲涅尔透镜的5个核心技巧,包括理解旋转体与折线原理、高效构建多齿轮廓、编辑优化、坐标系定位以及属性设置与验证。通过分步图解和实用策略,帮助用户突破内置工具限制,实现对非标准齿形和复杂光学设计的完全掌控,提升建模精度与仿真效率。

onion的博客 775

[力扣] 5.最长回文子串 中等

描述: 给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。 示例: 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 我的解决方案: class Solution { public String longestPalindrome(String s) { if(s==null||s.length()==1){ ...

a_small_Bird233的博客 177

智能车图像处理9-进阶篇1--中线的提取

(1)10-50行 基础扫线 (2)56-71 断行0 ,就是比如遇到十字,十字路口下方 第一次断线的地方。 (3)83-124 按照原先有效行,拟线作为中值,然后从中值向左右扫线,同时计算赛道宽度。 (4)125-138 如果出现赛道宽度小于先前有效行,则找到二次扫线的起点,从二次扫线起点处,继续向下扫线,直至结束,同时记录最后的有效行。 (5) 310-- 最后计算左右边线类似于方差的值,用于环岛的判断 ***这里着重描述一下二次扫线,希望大家可以理解的深刻

taiyuezyh的博客 1万+

三步实现Java分布式追踪:像“开灯”一样简单

摘要: 本文通过三步实现Java分布式追踪: 引入依赖:配置Spring Cloud Sleuth+Zipkin,自动埋点无需代码侵入; 启动服务:REST接口自动生成Trace/Span ID,日志可验证; 可视化分析:通过Zipkin UI查看调用链耗时和拓扑关系。 亮点:AOP自动埋点、零业务代码修改、支持多服务链路追踪,助力快速定位性能瓶颈。适用于微服务诊断,生产环境可调整采样率平衡性能。(150字)

墨夶的博客 2711

回文串系列

目录导言单一回文串最长回文子串中心扩展法动态规划 导言 回文,顾名思义就是正着读倒着读都是一样的,回文字符串系列问题在字符串问题中占了很大的比重,通过回文串可以延伸出很多相类似的题目,会用到不同的算法,各有千秋,例如动态规划、分治、回溯、双指针、递归等算法。下面就从最简单的回文字符串开始一步步深入讨论。 单一回文串 一个最简单的题目就是给出一个字符串,判断是否是回文串,其中这个字符串只包含连续的字...

laoli的博客 1587

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java递归实现回文算法_递归实现回文判断

首先我们要考虑使用递归的2个条件,原问题是否可以分解为形式相同但规模更小的问题,还有就是如果存在这样的分解,那么这种分解是否存在一种简单情境?先来看第一点,是否存在一种符合条件的分解。容易发现,如果一个字符串是回文,那么在它的内部一定存在着更小的回文。 比如level里面的eve也是回文。 而且,我们注意到,一个回文的第一个字符和最后一个字符一定是相同的。所以我们很自然的有这样的方法:先判断给定字...

weixin_39884074的博客 943

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

回文数和回文串:常见操作汇总

【法一】粗暴反转 class Solution { public boolean isPalindrome(int x) { String s1 = Integer.toString(x); StringBuilder sb = new StringBuilder(s1); sb.reverse(); String s2 = sb.toString(); if(s1.equals(s2)){ re

qq_38596491的博客 605

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

回文算法一维数组c语言,回文算法

一、回文算法:回文指从左往右和从由往左读到相同内容的文字。比如: aba,abba,level。回文具有对称性。回文算法的目标是把最长的回文从任意长度的文本当中寻找出来。比如:从123levelabc中寻找出level。回文数C语言(Xcode实现)#include #include int IsHuiWenShu( int );int main(int argc, const char * ar...

weixin_27785375的博客 630

动态规划-最长回文子串

最长回文子串

张凡的博客 366

leetcode算法题练习--最长回文子串(c语言)

1、问题描述 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: “babad” Output: “bab” Note: “aba” is also a valid answer. ...

weixin_38072112的博客 516

Python 最长回文串的三种解法

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 暴力解法 class Solution: def longestPalindrome(self, s): # 暴力解法 n = len(s) # s为空的情况 if n == 0:

寒飞雪的博客 2067

【算法】最长回文子串

题目 回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的。简而言之,回文串是左右对称的。所谓最长回文子串问题,是指对于一个给定的母串。从所有的为回文串的子串a, ded, cdedc, bcdecdb中;找出最长的那一个bcdecdb。但是该如何判断子串是否回文然后找出最长者呢? 解答 一、暴力求解(时间复杂度O(n^3)) ...

火山君的博客 433

回文判断 java

题目:给定一个字符串判定这个字符串是不是回文。 分析:回文的意思是,举几个例子“121”,“abba”,"aaaadddd"。回文的意思是左右对称的字符串。 解法一:从两头往中间扫描: 不论是奇数长度的"aba",还是偶数长度的“aabb”,从两头向中间 扫描都是(0,length-1),(1,length-2)这样子的对称的。扫描的终止条件是iO(n),空间复杂度为O(1) 参考代码如下

TJUCoders的博客 574

【动态规划:回文串问题】最长回文子串 && 回文串分割IV

本文介绍了三道回文子串问题的解法:最长回文子串、回文串分割IV。核心思路是利用动态规划预处理字符串,构建二维dp表记录所有子串的回文状态。对于最长回文子串,在遍历dp表时记录最大长度和起始位置;对于回文串分割IV,通过检查所有可能的三段分割组合是否存在全回文情况。两种方法的时间复杂度均为O(n²),空间复杂度O(n²)。文章提供了详细的解题思路和对应代码实现,并强调了处理过程中的边界条件注意事项。

lirendada的博客 1304
上一篇: kmp 练习下
下一篇: k_over 重叠字符串
lsff01
博客等级 码龄14年 4粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值