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

Pythonで並べ替えられた配列から重複を削除する


ソートされたリストAがあるとします。重複するすべてのエントリを削除した後、配列の長さを返す必要があります。これは、O(1)の余分なスペースで実行する必要があります。そのため、その場で操作を行う必要があります。

たとえば、A =[1、1、2、2、2、3、3、3、3、4、5、5、5、6]とすると、6つの異なる要素があるため、出力は6になります。

これを解決するには、次の手順に従います-

  • リストが空の場合は、0を返します
  • それ以外の場合は、最初にprev=Aの最初の要素を取得します。長さ=0を定義します
  • for i:=1からn-1、do
    • A [i]がprevと同じでない場合、
      • 長さ:=長さ+ 1
      • prev:=A [i]
  • 戻りの長さ

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

例(Python)

class Solution(object):
   def removeDuplicates(self, nums):
      """
      :type nums: List[int]
      :rtype: int
      """
      if len(nums) == 0:
         return 0
      length = 1
      previous = nums[0]
      index = 1
      for i in range(1,len(nums)):
         if nums[i] != previous:
            length += 1
            previous = nums[i]
            nums[index] = nums[i]
            index+=1
      return length
input_list = [1,1,2,2,2,3,3,3,3,4,5,5,5,6]
ob1 = Solution()
print(ob1.removeDuplicates(input_list))

入力

[1,1,2,2,2,3,3,3,3,4,5,5,5,6]

出力

6

  1. 特定の文から重複する単語をすべて削除するPythonプログラム。

    与えられた文。特定の文から重複する単語をすべて削除します。 例 Input: I am a peaceful soul and blissful soul. Output: I am a peaceful soul and blissful. アルゴリズム Step 1: Split input sentence separated by space into words. Step 2: So to get all those strings together first we will join each string in a given list of strings. Step 3:

  2. Pythonで特定の文字列からすべての重複を削除します

    Pythonで文字列からすべての重複を削除するには、最初に文字列をスペースで分割して、各単語が配列に含まれるようにする必要があります。次に、重複を削除する方法は複数あります。 最初にすべての単語を小文字に変換し、次にそれらを並べ替え、最後に一意の単語のみを選択することで、重複を削除できます。たとえば、 例 sent = "Hi my name is John Doe John Doe is my name" # Seperate out each word words = sent.split(" ") # Convert all words to