Problem:
Write a function that reverses a string. The input string is given as an array of characters char[].
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.
Explanation:
翻转字符串,只能使用O(1)空间。
My Thinking:
从数组头和尾两个指针向中间移动并互相交换。
My Solution:
class Solution {
public void reverseString(char[] s) {
if(s.length==0)
return;
int i=0;
int j=s.length-1;
while(i!=j && j!=i-1){
char k=s[i];
s[i]=s[j];
s[j]=k;
i++;
j--;
}
}
}
Optimum Thinking:
Optimum Solution: