原题:
344. Reverse String
QuestionEditorial Solution
Difficulty: Easy
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = "hello", return "olleh".
tips:
- 两种方式实现:栈方式和交换位置方式;
- 栈方式效率较低,交换位置方式效率较高;
- 其他方法:直接使用StringBuilder的reverse方法(效率还行),递归的方式(不考虑);
- 推荐使用交换位置方式;
方式一:交换位置方式
public String reverseString(String s) {
if(s.length()<=0||s==null||s.length()==1)
return s;
char []chars=s.toCharArray();
int i=0;
int j=chars.length-1;
while(i<j){
char c=chars[i];
chars[i]=chars[j];
chars[j]=c;
i++;
j--;
}
return new String(chars);
}
方式二:StringBuilder类方式:
public String reverseString(String s) {
return new StringBuilder(s).reverse().toString();
}
方式三:栈方式
public String reverseString(String s) {
if(s.length()<=0||s==null||s.length()==1)
return s;
int len=s.length();
Stack<Character> stack=new Stack<>();
for(int i=0;i<len;i++){
stack.push(s.charAt(i));
}
StringBuilder sb=new StringBuilder();
while(!stack.isEmpty()){
sb.append(stack.pop());
}
return sb.toString();