LeetcodeLeetCodeアルゴリズムパンチカード学習6日目

文字列関連の質問から始めます

1つは、文字列を逆にします

入力文字列を逆にする役割を持つ関数を記述します。入力文字列は、文字配列char []の形式で指定されます。

別の配列に余分なスペースを割り当てないでください。この問題を解決するには、入力配列をその場で変更し、O(1)の余分なスペースを使用する必要があります。

配列内のすべての文字は、ASCIIコードテーブル内の印刷可能な文字であると想定できます。
ここに画像の説明を挿入
方法1:私の

class Solution {
    
    
    public void reverseString(char[] s) {
    
    
        int length=s.length;
        for(int i=0;i<length/2;i++){
    
    
            char temp=s[i];
            s[i]=s[length-i-1];
            s[length-i-1]=temp;
        }
    }
}

方法2:公式のデュアルポインター

class Solution {
    
    
    public void reverseString(char[] s) {
    
    
        int n = s.length;
        for (int left = 0, right = n - 1; left < right; ++left, --right) {
    
    
            char tmp = s[left];
            s[left] = s[right];
            s[right] = tmp;
        }
    }
}

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/reverse-string/solution/fan-zhuan-zi-fu-chuan-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

おすすめ

転載: blog.csdn.net/Shadownow/article/details/113728481