Pascal,将字符串转换为回文

时间:2017-11-20 18:48:44

标签: pascal

我必须检查字符串是否可以更改为回文,例如:

输入:AABBCC,ABCD

输出:是(ABCCBA),否

我出来了这段代码:

program test;
var
 x, y: string;
 i: integer;
begin
 readln(x);
  for i:= length(x) downto 1 do
  y := y + x[i];

 writeln(y);
 readln
end.

但是这个程序只能从后面写文字。

我将感激任何答案

1 个答案:

答案 0 :(得分:0)

您可以做的是:

  1. 创建使用以下字符编制索引的整数数组:chars:array['A'..'Z'] of integer
  2. 遍历字符串中的每个字符并增加其数组元素。例如,字符串是' ABBCBBA'。你会增加反击A' A'两次,在' C'一次又一次' B' 4次。
  3. 然后通过数组并有一个测试布尔值。如果每个索引的值都是偶数或只有一个奇数值,则字符串可以变成回文。否则我不能成为回文。布尔值以' true'开头。一旦你不止一次找到奇数值,它就会变为假。上面给出的例子将返回true,因为每个字符都会重复多次,期望' C'和' C'只是不均衡的价值。类似于ABBC'返回false。
  4. 非常简单的算法。祝好运实施。

    有了这个,你可以在完成后输出布尔值。