java 实现字符串逆置

题目:
写一个函数,将一个字符串变成倒序,结果存于原字符串,不得额外分配空间保存字符串。例如:abcdef 经变换后为 fedcba

算法思路:
采用递归算法,字符两两交换。

package reverseString;

public class ReverseString
{

/**
* @param args
*/
public static void main(String[] args)
{
String test = "12345";
System.out.println(reverse(test, 0, (test.length() - 1)));
}

private static String reverse(String string, int startIndex, int endIndex)
{
if (startIndex >= endIndex)
return string;

// swap char at startIndex and endIndex
char characterAtEnd = string.charAt(endIndex);

if ((endIndex + 1) < string.length())
string = string.substring(0, endIndex) +
string.charAt(startIndex) +
string.substring(endIndex + 1, string.length());
else
string = string.substring(0, endIndex) + string.charAt(startIndex);


string = string.substring(0, startIndex) +
characterAtEnd +
string.substring(startIndex + 1, string.length());


return reverse(string, ++startIndex, --endIndex);
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值