题目描述
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.
题目分析
这是一道水题,唯一的坑点是可能字符串 s 过长。如果定义变量 String ss+=s.charAt(n),这样的写法会造成超时。ss在执行+=的过程中不断申请新的空间,变成了一个新的对象,这样就照成了超时。
方法一,将s转换为 StringBuilder 类型,直接调用对应的库函数。
方法二,讲s转换成字符数组,进行操作。
方法1
public class Solution {
public String reverseString(String s) {
StringBuilder sb = new StringBuilder(s);
return sb.reverse().toString();
}
}
方法2
public String reverseString(String s){
if(s == null || s.length() == 0)
return "";
char[] cs = s.toCharArray();
int begin = 0, end = s.length() - 1;
while(begin <= end){
char c = cs[begin];
cs[begin] = cs[end];
cs[end] = c;
begin++;
end--;
}
return new String(cs);