LeetCode-344-反轉字串

雄獅虎豹 發表於 2021-09-26
LeetCode

反轉字串

題目描述:編寫一個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char[] 的形式給出。

不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列、使用 O(1) 的額外空間解決這一問題。

你可以假設陣列中的所有字元都是 ASCII 碼錶中的可列印字元。

示例說明請見LeetCode官網。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/probl...
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

解法一:陣列遍歷
遍歷s,遍歷順序是0~s.length/2,將第i項的值和第s.length-1-i項的值進行交換。遍歷完成後的s即為反轉後的字串。
public class LeetCode_344 {
    public static void reverseString(char[] s) {
        for (int i = 0; i < s.length / 2; i++) {
            // 第i項和第s.length-1-i項進行交換
            char temp = s[i];
            s[i] = s[s.length - 1 - i];
            s[s.length - 1 - i] = temp;
        }
    }

    public static void main(String[] args) {
        char[] s = new char[]{'h', 'e', 'l', 'l', 'o'};
        System.out.println("-----反轉之前-----");
        for (char c : s) {
            System.out.print(c + " ");
        }
        System.out.println();
        reverseString(s);
        System.out.println("-----反轉之後-----");
        for (char c : s) {
            System.out.print(c + " ");
        }
    }
}
【每日寄語】 每一次的突破都是為了成就更好的自己。