关于字符串的一个问题的解决所想到的

目要求:输出一个字符串,要求前后对应顺序交换,若有奇数个,中间字符不交换,交换后输出,分析了一下代码如下:


分析这个题目,主要的难点在于在奇数和偶数时要交换的数组下标不一致而导致问题难度变大,所以在进循环之间对字符串的长度进行一个奇数和偶数的判断操作,统一转换成偶数的形式处理,但是能不能直接解决呢?我们发现再交换时前一半的下标是不变的,主要是后一半的在变化,但是后一半的最后一个是一样的,所以为什么不能从后一半的最后一个字符开始呢?

第二种方法的代码如下:


两种方法都是绕过问题的正面,从另一面去解决问题,其实更直接的方法就是奇数和偶数去处理,但是代码重复度太高,这在我看来是相当糟糕的,循环语句使执行过程相同的部分简化,使得代码更优美,如果强攻太复杂,何不智取,多思考,把问题转化一下,从而使代码更漂亮!这是每一个程序员应该思考的问题!也是一个优秀程序员应该做的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值