问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

pascal 回文数问题

发布网友 发布时间:2022-04-30 14:44

我来回答

5个回答

热心网友 时间:2022-06-23 07:41

********************华丽的分割线*******************
var a,b:array[0..30000]of char;c:array[0..30000]of longint;
var q,w,max,i,j,n,x:longint;
begin
while not(eof) do
begin
inc(n);
read(a[n]);
end;
x:=0;
for i:=1 to n do
if a[i] in ['A'..'Z'] then begin x:=x+1;b[x]:=chr(ord(a[i])+32);c[x]:=i;end
else if a[i] in ['a'..'z'] then begin x:=x+1;b[x]:=a[i];c[x]:=i;end;
max:=0;
i:=1;
while i<x do
begin
j:=0 ;
while (b[i-j+1]=b[i+j])and(i-j+1>1)and(i+j<x) do
inc(j);
if b[i-j+1]<>b[i+j] then dec(j);
if j*2>max then begin max:=j*2;q:=c[i-j+1];w:=c[i+j];end;
j:=0;
while (b[i-j]=b[i+j])and(i-j>1)and(i+j<x) do
inc(j);
if b[i-j]<>b[i+j] then dec(j);
if j*2+1>max then begin max:=j*2+1;q:=c[i-j];w:=c[i+j];end;
inc(i);
end;
writeln(max);
if q=0 then q:=1;
if w=x+1 then w:=x;
for i:=q to w do
write(a[i]);
end.
********************华丽的分割线*******************
USACO里我的AC程序,绝对能过、
如果还有不懂,来找我

热心网友 时间:2022-06-23 07:41

program aa;
const
ph=['a'..'z','A'..'Z'];
var
a:array[1..20000]of char;
x1,x2,max,t1,t2,t3,t4,i,j,n:integer;
Function Right(t1,t2:integer;var t3,t4:integer):boolean;
var i,j:integer;
ch1,ch2:char;
begin
Right:=false;
i:=t1-1;
while (not (a[i] in ph)) and (i>0) do dec(i);
if i<=0 then exit;
j:=t2+1;
while (not (a[j] in ph)) and (j<=n) do inc(j);
if j>n then exit;
if ord(a[i])<97 then ch1:=a[i]
else ch1:=chr(ord(a[i])-32);
if ord(a[j])<97 then ch2:=a[j]
else ch2:=chr(ord(a[j])-32);
if ch1<>ch2 then exit;
right:=true;
t3:=i;t4:=j;
end;
begin
n:=0;
while not eoln do
begin
inc(n);
read(a[n]);
end;

max:=0;
for i:=1 to n do
if a[i] in ph then begin
j:=1;t1:=i;t2:=i;
while right(t1,t2,t3,t4) do
begin
inc(j);
t1:=t3;t2:=t4;
end;
dec(j);
if j*2+1>max then begin
max:=j*2+1;
x1:=t1;x2:=t2;
end;
end;
for i:=1 to n-1 do
if a[i] in ph then begin
j:=1;t1:=i+1;t2:=i;
while right(t1,t2,t3,t4) do
begin
inc(j);
t1:=t3;t2:=t4;
end;
dec(j);
if j*2>max then begin
max:=j*2;
x1:=t1;x2:=t2;
end;
end;
writeln(max);
for i:=x1 to x2 do write(a[i]);
writeln;
end.

热心网友 时间:2022-06-23 07:42

var
n,l,t,i:longint;
s:string;
begin
readln(n);
str(n,s);
l:=length(s);
t:=0;
for i:=1 to l div 2 do if s[i]s[l-i+1] then begin t:=1;break;end;
if t=0 then writeln('YES') else writeln('NO');
end.

热心网友 时间:2022-06-23 07:42

【USACO上的……】

const
ph=['a'..'z','A'..'Z'];
var
a:array[1..20000]of char;
x1,x2,max,t1,t2,t3,t4,i,j,n:integer;
Function Right(t1,t2:integer;var t3,t4:integer):boolean;
var i,j:integer;
ch1,ch2:char;
begin
Right:=false;
i:=t1-1;
while (not (a[i] in ph)) and (i>0) do dec(i);
if i<=0 then exit;
j:=t2+1;
while (not (a[j] in ph)) and (j<=n) do inc(j);
if j>n then exit;
if ord(a[i])<97 then ch1:=a[i]
else ch1:=chr(ord(a[i])-32);
if ord(a[j])<97 then ch2:=a[j]
else ch2:=chr(ord(a[j])-32);
if ch1<>ch2 then exit;
right:=true;
t3:=i;t4:=j;
end;
begin
assign(input,'calfflac.in'); reset(input);
assign(output,'calfflac.out'); rewrite(output);
n:=0;
while not eoln do
begin
inc(n);
read(a[n]);
end;

max:=0;
for i:=1 to n do
if a[i] in ph then begin
j:=1;t1:=i;t2:=i;
while right(t1,t2,t3,t4) do
begin
inc(j);
t1:=t3;t2:=t4;
end;
dec(j);
if j*2+1>max then begin
max:=j*2+1;
x1:=t1;x2:=t2;
end;
end;
for i:=1 to n-1 do
if a[i] in ph then begin
j:=1;t1:=i+1;t2:=i;
while right(t1,t2,t3,t4) do
begin
inc(j);
t1:=t3;t2:=t4;
end;
dec(j);
if j*2>max then begin
max:=j*2;
x1:=t1;x2:=t2;
end;
end;
writeln(max);
for i:=x1 to x2 do write(a[i]);
writeln;
close(output);
end.

应该懂了嘛??如果要测试数据,我这里还有…………

热心网友 时间:2022-06-23 07:43

usaco的吧......

枚举即可
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天一共卖出136张电影票,上午卖出去86张,下午卖出多少张。 17届华杯赛小学高年级组的初赛的这道题怎么做? 美特斯工业系统(中国)有限公司MTS公司发展史 mts公司是什么单位 华夏八大古姓是哪八个 ...耳鸣 单眼瞳孔上移 平常手机看得多 会不会是脑瘤 ...了首付给儿子和儿媳买了一套房子,房照上面写的是儿子和儿媳的... GBA最终幻想战略卡住 最终幻想战略版 大bug (狮子战争?就是GBA上的) GBA版最终幻想战略版的BUG问题,很急的 Python的两个个超小计算题 chr(ord(&#39;a&#39;)-32)什么意思 微信被大数据监测多久解除 没了电瓶的电瓶车卖出值多少钱 电动车电瓶怎么卖的,是按斤的吗 电动车电池哪里有卖,多少钱 用微信怎样还兴业信用卡最低还款? 买个电动车电瓶,有卖的吗,得多少钱 在微信钱包中给兴业银行还信用卡,有问题!求解! 烂电车电池卖给谁 怎么向微信好友转账 我想知道微信给信用卡还款应当如何操作 微信可以为兴业银行信用卡还款吗 联想电脑断电后开不了机怎么办联想笔记本没电了,突然关机,充电后... 步步高家教机能安装内存卡吗型号是h110 红菜苔弄脏手怎么清洗? 红菜苔叶子很多可以打掉吗 自制手机投影仪如何最清晰 自制投影仪,投出来的只有光斑,怎样解决,顺便告诉我原理和怎样才能使投影出来的像最清晰。谢谢! 华为P40Pro怎么设置来电闪光灯? 懂free pascal语句的朋友进!,我有问题 朋友圈中的微信大数据是怎么弄的啊? pascal语言 在微信上可以做大数据分析吗? 如何在PASCAL里用字符输出一个猪的头像。 微信下了大数据推送出来了吗 pascal的几道题,点进来看 我的微信怎么被大数据盯上 任意输入一个字母,将其转换为大写字母再输出!不管输入的是大写还是小写 pascal的一个题目 编程输出一个字符如果是一字母则输出对应的小写字母是小写字母则输出对应大写字母如果是其他字符则原样输 PASCAL中大小写转化 1.再键盘上输入六个大写字母,把它转换成对应的大写字母输出。输入:pascal输出PASCAL。 (CHR(ORD(’A’)+N-1)) 是什么意思啊 用pascal语言如何编写&quot;输入一串大字字母,以*结束,将大字字母轮换成小写字母输出。 pascal语言中的ORD 和CHR函数有什么区别 随机输入一句英文句子(长度小于128),判断句中单词的个数后最后一个单词的长度 一道Pascal小问题,紧急!!!在线等!!! chr和ord是一对字符函数,你能利用它,将一个大写字母转换成小写字母。假设这个大写字母的变量名为 手机怎样制作聊天记录