題目地址:https://leetcode-cn.com/problems/reverse-string/java
編寫一個函數,其做用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。
不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。
你能夠假設數組中的全部字符都是 ASCII 碼錶中的可打印字符。數組
示例 1:函數
輸入:["h","e","l","l","o"]
輸出:["o","l","l","e","h"]指針
示例 2:code
輸入:["H","a","n","n","a","h"]
輸出:["h","a","n","n","a","H"]leetcode
public void reverseString(char[] s) { int n = s.length; for(int i = 0; i < n/2; i++){ char temp = s[i]; s[i] = s[n-i-1]; s[n-i-1] = temp; } }
開篇一題也沒太多可思考的,字符串也就是數組。遍歷、逆序、交換、快慢指針等等。很顯然倒過來逆序就完了,但題目要求不建立額外空間,也就剩首尾交換。整體來講這一類的題在數組內部進行變換就是交換值,只是看一次涉及多少個位置(指針)的變化。字符串