lvcaolhx 发表于 2007-12-19 11:20:15

delphi练习题2--回文字符串

所谓回文字符串就是左右对称的字符串,比如ABA,ABCBA,ABCCBA等
输入一个字符串(此题中规定所有字符为小写a~z,长度不超过80),验证是否是回文字符串(输出IS),如果不是回文字符串,相邻两个字符交换最少次数可以达到回文字符串,输出最少次数。如果一个字符串经过相邻字符交换仍然不能变成回文字符串,则输出“IMPOSSIBLE".
比如:
输入aviva,输出IS;
输入ejlb,输出IMPOSSIBLE;
输入deedy,输出2(第一次最后相邻两位交换deeyd;第二次3、4两位交换deyed,左右对称。这只是最简交换过程之一,计算方法不一定如此,只需输出2);

不是delphi课程作业,喜欢编程的朋友做

由于工作原因,本人不得不放下编程,此贴将放弃,不再更新!

[ 本帖最后由 lvcaolhx 于 2007-12-22 10:00 编辑 ]

agang 发表于 2007-12-21 21:10:00

这个对新手来说有难度哦,/:012 算法有没提示呀?

jfxwc 发表于 2007-12-22 09:22:22

用数组即可,前面两个要求不难,可以写成一个过程让 要求3 每次交换时调用。

第3点 ,如果只是判断是否可以交换到回文,直接判断每一种字符的个数是否偶数,只有一个是单数即可。

但是这个交换次数嘛,有点麻烦。可能要递归。暂时没有想清楚。
页: [1]
查看完整版本: delphi练习题2--回文字符串