递归法
public static String reverse(String value){
if(value == null || value.length() <=1){
return value;
}
return reverse(value.subString(1)) + value.charAt(0);
}
二分法
public static String reverse(String value){
StringBuilder sb = new StringBuilder(value);
int len = value.length();
for(int i=0, j=len-1; i<value>>>1; j++){
char temp = sb.charAt(i);
sb.setCahrAt(i) = sb.charAt(j);
sb.setCharAt(j) = temp;
}
return sb.toString();
}
末尾遍历法
public static String reverse(String value){
StringBuilder sb = new StringBuilder();
for(int i= value.length()-1; i>=0; i--){
sb.append(value.charAt(i);
}
return sb.toString();
}```
顺序遍历法
public static String reverse(String value){
StringBuilder sb = new StringBuilder();
String result = "";
for(int i=0; i< value.length -1; i++){
result = value.charAt(i) +result ;
}
}
栈入栈出法
public static String reverse(String value){
StringBuilder sb = new StringBuilder();
Stack stack = new Stack();
for(int i=0; i<value.length(); i++){
stack.add(value.charAt(i));
}
for(int i=0; i<value.length(); i++){
sb.append(stack.pop());
}
return sb.toString();
}