Title:Reverse String 344
Difficulty:Easy
原题leetcode地址:https://leetcode.com/problems/reverse-string/
1. 双指针
时间复杂度:O(n),一次一层while循环,最长遍历整个数组。
空间复杂度:O(n),申请StringBuilder和字符数组。
/**
* 采用双指针
* 1、判断字符串的长度是否为0
* 2、将字符串转换成字符数组,然后采用双指针交换,最后将交换后的字符数组转换成字符串
* @param s
* @return
*/
public static String reverseString(String s) {
if (s.length() == 0) {
return "";
}
int begin = 0;
int end = s.length() - 1;
char sChar[] = s.toCharArray();
StringBuilder sb = new StringBuilder();
while (begin < end) {
char tmp = sChar[begin];
sChar[begin] = sChar[end];
sChar[end] = tmp;
begin++;
end--;
}
for (int i = 0; i < sChar.length; i++) {
sb.append(sChar[i]);
}
return sb.toString();
}