我必须写在帕斯卡尔的程序,检查一个词是否是一个回文。检查是否字回文与功能
例如:
如果I输入 “ABBA” 然后写 'TRUE'
输入 'ABB一个' 然后写 '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.
但它必须忽略空格。你有什么想法吗?
去掉所有的空格,则开始循环之前。 –
对不起,我看不懂你的语言,所以我不会读你的代码。在开始比较字符之前,只删除所有空格并转换为全部大写字母。 –
我知道我必须去掉空格,但我不知道该怎么做:) – MatFyzak