您的位置:首页 > 其它

【Leetcode】344. Reverse String

2017-02-23 12:06 525 查看
方法一:

思路:逆序遍历,构建逆序字符串。

public class Solution {
public String reverseString(String s) {
StringBuilder sb = new StringBuilder("");
for (int i = s.length() - 1; i >= 0 ; i--)
sb.append(s.charAt(i));
return sb.toString();
}
}

Runtime:6ms

方法二:

思路:先将字符串转换为字符数组,再逆转字符数组,最后利用逆转的字符数组构造最终的逆转字符串。

public class Solution {
public String reverseString(String s) {
char[] array = s.toCharArray();
char temp;
int left = 0, right = s.length() - 1;
while (left < right) {
temp = array[left];
array[left] = array[right];
array[right] = temp;
left++;
right--;
}
return new String(array);
}
}

Runtime:2ms

方法三:

思路:由于String不能修改,所以需要使用StringBuilder。

public class Solution {
public String reverseString(String s) {
StringBuilder sb = new StringBuilder(s);
int left = 0, right = s.length() - 1;
while (left < right) {
char temp = sb.charAt(left);
sb.setCharAt(left, sb.charAt(right));
sb.setCharAt(right, temp);
left++;
right--;
}
return sb.toString();
}
}

Runtime:5ms

方法四:

思路:直接利用StringBuilder的reverse方法。

public class Solution {
public String reverseString(String s) {
StringBuilder sb = new StringBuilder(s);
sb = sb.reverse();
return sb.toString();
}
}

Runtime:4ms
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: