飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3117|回复: 2

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

[复制链接]
  • TA的每日心情
    开心
    16 小时前
  • 签到天数: 1881 天

    [LV.Master]伴坛终老

    发表于 2007-12-19 11:20:15 | 显示全部楼层 |阅读模式
    所谓回文字符串就是左右对称的字符串,比如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 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-6-17 14:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-12-21 21:10:00 | 显示全部楼层
    这个对新手来说有难度哦,/:012 算法有没提示呀?
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-22 09:22:22 | 显示全部楼层
    用数组即可,前面两个要求不难,可以写成一个过程让 要求3 每次交换时调用。

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

    但是这个交换次数嘛,有点麻烦。可能要递归。暂时没有想清楚。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表