344.反転文字列(Python)

1513 ワード

タイトル
難易度:★☆☆☆タイプ:文字列
入力した文字列を反転させる機能を持つ関数を作成します.入力文字列は、文字配列char[]として与えられます.
別の配列に余分な空間を割り当てないで、入力配列をその場で修正し、O(1)の余分な空間を使用してこの問題を解決する必要があります.
配列内のすべての文字がASCIIコードテーブルの印刷可能な文字であると仮定できます.

例1:入力:["h","e","l","l","o"]出力:["o","l","l","e","h"]
例2:入力:["H","a","n","n","a","h"]出力:["h","a","n","n","a","H"]
に答える
この問題はPythonで実現に相当します.
class Solution:
    def reverseString(self, s):
        """
        Do not return anything, modify s in-place instead.
        """
        s.reverse()

ここでは、左右のポインタと要素の交換を使用して実現します.
  • 初期化左右ポインタはそれぞれ文字列リストの左右両端に位置する.
  • 各ラウンドは、2つのポインタが指す要素を交換し、左ポインタは右に移動し、同時に右ポインタは左に移動する.
  • 左ポインタが右ポインタの右側に移動すると、ポインタの位置が合法ではないと判断し、ループ
  • から飛び出す.
    class Solution:
        def reverseString(self, s):
    class Solution:
        def reverseString(self, s):
            """
            Do not return anything, modify s in-place instead.
            """
            left, right = 0, len(s) - 1                 #                
            while left < right:                         #        
                s[left], s[right] = s[right], s[left]   #         
                left += 1                               #      
                right -= 1                              #      
    

    質問やアドバイスがあれば、コメントエリアへようこそ~