LeetCode - 344. Reverse String(Two Pointers, String ,Recursion)


質問する
反転文字列の関数を作成します.入力文字列は、文字sの配列として提供されます.
この操作を実行するには、O(1)追加のメモリを使用して入力配列を変更する必要があります.
Write a function that reverses a string. The input string is given as an array of characters s.
You must do this by modifying the input array in-place with O(1) extra memory.
Example 1:
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Example 2:
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
https://leetcode.com/problems/reverse-string/
に答える
これはJavaです.
  • デュアルポインタを使用します.iは配列の先頭であり,jは配列の長さである.
  • i、j-1-iの位置の値を変更します.
    ex)i=0の場合、最初の値と最後の値が変更されます.
  • class Solution {
        public void reverseString(char[] s) {
            char tmp;
            int j = s.length;
            for(int i=0;i<j/2;i++){
                tmp = s[i];
                s[i] = s[j-1-i];
                s[j-1-i]=tmp;
            }
        }
    }