题目:
写一个函数,将一个字符串变成倒序,结果存于原字符串,不得额外分配空间保存字符串。例如: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);
}
}
分享到:
相关推荐
输入一串字符,将其逆置输出。输入一串字符,将其逆置输出。输入一串字符,将其逆置输出。
包括汉字字符的字符串逆置,用结构体模拟unicode存储字符
196 字符串逆置 C语言源代码文件
输入两行字符串s和t(s和t可以含空格,length(t)≤length(s)≤50),将s串中首次与t匹配的子串逆置,并将处理后的s串输出。 【输入形式】 输入文件为当前目录下的invertsub.in。 文件中有两行字符串s和t,分别以...
编制程序实现字符串的逆转功能。要求具有友好的输入、输出界面。如输入This is a test 输出 tset a si sihT
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之把字符串逆置
字符串转置,字符串的逆置
C语言实现如何逆置字符串
c语言回文数,注意输入的数不能越界哦,越界就不准确了.
/*////////////////////////////////////////////////////... * 把字符串中的内容逆置。 * 例如,原字符串中内容为hello,处理后字符串中内容为olleh * */////////////////////////////////////////////////////////
这个代码用于单词逆置,例如:who you are 逆置玩之后的字符串为:ohw uoy era
C#_处理字符串方法总结.doc
c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出...
C语言算法举例:字符串排序和链表逆置算法。
对以单链表为存储结构的表实现就地逆置,即在原有空间上实现逆置,不开辟新空间
输入两个串,一个串是另一个串的字串,逆置主串中的子串,输出
借助栈的使用来逆置单链表,通过链表元素的进栈与出栈就能完成了。
C/C++ 实现递归和栈逆序字符串的实例 递归函数调用模型 逆序方法 void revers(char *buf){ char *p = buf; if (p == NULL) { return; } //递归结束条件 if (*p == '\0') { return; } //递归调用 revers...
可以交换数据的方式实现,但单链表的数据的存取不是随机的,所以可以利用指针的指向转换来实现表的逆置。
是大学评估必须做的实验报告 栈的基本操作.doc结合了大学有关栈的基本操作