用PASCAL语言求回文数问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 11:34:09
谁能给我一个PASCAL语言的程序?
内容:输入一串字符,以#结束,判断此字符串是否为回文数.
注意:#不算在字符串内,严格区分大小写!

ls显然错。。比如1122,按照你的操作顺序的话就是1进1出2进2出,最终也能得到空栈,但1122显然不是回文。。
这个是我写的程序,因为不知道数据范围,所以用了string,如果数据太大的话建议改成ansistring。。
var a:char; s1,s2:string;
begin
a:=#0;
while a<>'#' do
begin
read(a);
if a='#' then break;
s1:=s1+a; s2:=a+s2;
end;
if s1=s2 then writeln('It is a palin word') else writeln('It is not a palin word');
end.
这个程序就是比较正序和倒序是否相同,如果相同则为回文,否则不为回文。。
没编译过,直接在上面拍的,不过相信不会错吧。。

从左扫,将遇见的且跟栈顶不一样的元素压入栈,如果碰见跟栈顶元素一样的就把栈顶出栈,最后看一下栈是否为空,为空则为回文数,否则不

这样是不是更准确?
var i,j:integer;
s,s1:string;
t:char;
a:array[1..200] of integer;
begin
s:='';
repeat
read(t);
if (t>='0')and(t<='9') then s:=s+t;
until t='#';
for i:=1 to length(s) do a[i]:=ord(s[i])-48;
for j:=length(s) downto 1 do s1:=s1+chr(a[j]+48);
if s=s1 then write('Yes') else write('No