反转字符串
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
思路1:倒序填入
开辟一个新数组,倒序填入字符
public class Solution {
public String solve (String str) {
int length = str.length();
char[] arr = new char[str.length()];
for(int i = 0; i < length; i++) {
arr[i] = str.charAt(length - 1 - i);
}
return String.valueOf(arr);
}
}
思路2:原地交换
- 第一个字符和最后一个字符交换
- 第二个字符和倒数第二个字符交换
写法1:使用for循环
public class Solution {
public String solve (String str) {
char[] arr = str.toCharArray();
int length = str.length();
for(int i = 0; i < length / 2; i++) {
int target = length - 1 - i;
char c = arr[i];
arr[i] = arr[target];
arr[target] = c;
}
return String.valueOf(arr);
}
}
写法2:使用while+双指针
public class Solution {
public String solve (String str) {
char[] arr = str.toCharArray();
int i = 0;
int j = str.length() - 1;
while(i < j) {
char c = arr[i];
arr[i] = arr[j];
arr[j] = c;
i++;
j--;
}
return String.valueOf(arr);
}
}
思路3:调用库函数
public class Solution {
public String solve (String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
}