题目描述
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例:
"This is nowcoder"
返回:"redocwon si sihT"
- 解法一
public String reverseString(String iniString) {
char[] chas = iniString.toCharArray();
for(int i = 0, len = chas.length; i < len/2; i++){
char temp = chas[i];
chas[i] = chas[len-1-i];
chas[len-1-i] = temp;
}
return new String(chas);
}
- 解法二
public String reverseString(String iniString) {
String newStr = "";
for(int i = 0; i < iniString.length(); i++){
char temp = iniString.charAt(iniString.length() - 1 - i);
newStr += temp;
}
return newStr;
}
- 解法三 - 使用额外数据结构(StringBuffer)
public String reverseString(String iniString) {
StringBuffer sb = new StringBuffer(iniString);
return sb.reverse().toString();
}