【发布时间】:2015-11-29 21:37:45
【问题描述】:
我必须用 Pascal 编写一个程序来检查一个单词是否是回文。
例如:
如果我输入“abba”,则输入“TRUE”
输入'abb a'然后写'TRUE'
输入'abca'写'FALSE'
这是我写的:
program palindromek;
var i,j,delka,pul:integer;
str:string;
function palindrom(slovo:string):boolean;
const mezera=32;
begin
delka:=length(str);
if (delka mod 2) = 0 then pul:=delka div 2
else pul:=(delka-1) div 2;
for i:=1 to delka do
begin
if (ord(slovo[i])>=ord('a')) and (ord(slovo[i])<=ord('z')) then
begin
if (delka>=4)and(delka<=100) then
begin
if (length(str) mod 2) = 0 then {slovo se sudym poctem pismen}
begin
for j:=1 to pul do
begin
if slovo[j]=slovo[length(str)-j+1]
then palindrom:=true else palindrom:=false
end
end else
begin
for j:=1 to pul do
begin
if slovo[j]=slovo[length(str)-j+1]
then palindrom:=true else palindrom:=false
end
end
end else if slovo[1]=slovo[delka]
then palindrom:=true else palindrom:=false
end
end;
end;
begin
readln(str);
writeln(palindrom(str));
end.
但它必须忽略空格。请问您有什么想法吗?
【问题讨论】:
-
在开始循环之前去掉所有空格。
-
对不起,我看不懂你的语言,所以我不会读你的代码。在开始比较字符之前,只需去掉所有空格并转换为全部大写即可。
-
我知道我必须去掉空格,但我不知道该怎么做:)
标签: algorithm pascal palindrome