Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで配列を回転


配列Aがあるとします。kステップ右に回転する必要があります。したがって、配列がA =[5、7、3、6、8、1、5、4]、およびk =3の場合、出力は[1,5,4,5,7,3,6、 8]。手順は次のようなものです

  • [4,5,7,3,6,8,1,5]
  • [5,4,5,7,3,6,8,1]
  • [1,5,4,5,7,3,6,8]

これを解決するために、次の手順に従います。

  • nは配列のサイズです
  • k =k mod n
  • A =n –kからendまでのAのサブアレイ+0からn– k –1までのAのサブアレイ

理解を深めるために、次の実装を見てみましょう-

class Solution(object):
   def rotate(self, nums, k):
      """
      :type nums: List[int]
      :type k: int
      :rtype: None Do not return anything, modify nums in-place instead.
      """
      n = len(nums)
      k%=n
      nums[:] = nums[n-k:]+nums[:n-k]
nums = [5,7,3,6,8,1,5,4]
ob1 = Solution()
ob1.rotate(nums, 3)
print(nums)

入力

nums = [5,7,3,6,8,1,5,4]
k = 3

出力

[1,5,4,5,7,3,6,8]

  1. 文字列を回転させるためのPythonでの文字列スライス

    文字列が与えられます。私たちのタスクは、文字列を2つの方法にスライスすることです。 1つは時計回りで、もう1つは反時計回りです。 1.指定された文字列を左(または反時計回り)にd個の要素(d <=n)だけ回転させます。 2.指定された文字列を右(または時計回り)にd個の要素(d <=n)だけ回転させます。 例 Input: string = "pythonprogram" d = 2 Output: Left Rotation: thonprogrampy Right Rotation: ampythonprogr アルゴリズム Step 1: Enter string

  2. 配列を1つずつ循環的に回転させるPythonプログラム

    与えられたユーザー入力配列。私たちのタスクは、周期的に回転することは、値を時計回りに回転させることを意味します。 例 Input: A=[1,2,3,4,5] Output=[5,1,2,3,4] アルゴリズム Step 1: input array element. Step 2: Store the last element in a variable say x. Step 3: Shift all elements one position ahead. Step 4: Replace first element of array with x. サンプルコード # Pyth