一个包含大写和小写字母的字符串,要求在其后面加上最少的字符,使其成为一个回文串。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个包含大写和小写字母的字符串,要求在其后面加上最少的字符,使其成为一个回文串。相关的知识,希望对你有一定的参考价值。
如果该串原本就是回文串,也需要加上不为零个字符。
program cs;
end;
//删去奇数个字符中间字符。
i:=0;j:=1;
while j<=length(c) do
s[i]:=c[j];
inc(j);
end//栈空,则直接压栈。
else
begin
if s[i]=c[j] then
begin
dec(i);
inc(j);
end//栈顶元素与当前字zhi符相同,就出栈。
end;//不同,就进栈。
if i=0 then writeln('True')
else writeln('False');//如果栈是空的,证明是回文。
思路是对于奇数个字符,删去中间字符。
其余字符扫一个处理一个,s[]是栈,i是它的指针。
j是c的指针。
例如:
对于 ab 字符串,本身不是回文串(反过来是字符串:ba),但是通过在小写字母 b 的后面添加一个小写字母 a,可以使其成为回文串,即:aba(正向、反向内容都相同)
但是对于 abcd 字符串,本身不是回文串(反过来是字符串:dcba),但是无论通过什么方法,都无法做到只添加一个字母,使其成为一个回文串。
扩展资料:
1、初始化标志flag=true;
2、输入字符串str,并获取其长度len;
3、定义并初始化游标i=0,j=len-1,分别指向字符串开头和末尾;
4、比较字符str[i]和str[j],若i==j,转至7,否则往下执行5;
5、若str[i]和str[j]相等,则游标i加1,游标j减1后转至4,否则往下执行6;
6、令标志位flag=flase,结束比较,str不是回文串,算法结束。
7、若str[i]和str[j]相等,结束比较,flag=true,str为回文串,算法结束。
参考资料来源:百度百科-回文串
参考技术A 动归http://gisyhy.blog.163.com/blog/static/129390343200992485243739/
自己看吧....不会追问
以上是关于一个包含大写和小写字母的字符串,要求在其后面加上最少的字符,使其成为一个回文串。的主要内容,如果未能解决你的问题,请参考以下文章
js密码正则表达式:要求包含大小写字母、数字和特殊符号,8~16位
至少一个大写字母、一个小写字母、一个数字或特殊字符的正则表达式
js正则怎么判断一个字符串里必须包含大写字母,小写字母,数字,特殊字符? 看清楚了,是必须包含,求教