目录
反转字符串
描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
示例1
输入:
"abcd"
返回值:
"dcba"
方法一:栈
利用栈先进后出的特性进行反转
import java.util.*;
public class Solution {
public String solve (String str) {
// write code here
Stack<Character> stack=new Stack();
StringBuilder res=new StringBuilder();
for (int i = 0; i < str.length(); i++) {
stack.push(str.charAt(i));
}
while(!stack.isEmpty()){
res.append(stack.pop());
}
return res.toString();
}
}
该方法时间消耗较大,不建议采用,
方法二:倒叙赋值
新建一个同样大小的字符串res,然后将目标字符串倒叙赋值到结果字符串中
import java.util.*;
public class Solution {
public String solve (String str) {
// write code here
char[] res=str.toCharArray();
int len=str.length();
for (int i = 0; i < len; i++) {
res[i]=str.charAt(len-1-i);
}
return new String(res);
}
}
方法三:交换赋值
我们也可以不用创建新的字符串,在原字符串上进行交换,将第一个字符和最后一个字符交换位置,以此类推
import java.util.*;
public class Solution {
public String solve (String str) {
// write code here
char[] res=str.toCharArray();
int len=str.length();
char temp;
for (int i = 0; i < len/2; i++) {
temp=res[i];
res[i]=res[len-1-i];
res[len-1-i]=temp;
}
return new String(res);
}
}