【競技プログラミング】「Remove Element」with Python | LeetCode #27

Python

こちらは「Remove Element」のPythonによる解答例となっております。この問題は、整数の配列と削除する値が与えられたときに、配列内の指定された値を削除し、新しい配列の長さを返す問題です。

問題

整数の配列 nums と削除する値 val が与えられたとき、配列内の指定された値を削除し、新しい配列の長さを返します。

  • nums には、0から100までの数値が含まれます。
  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100

解法

この問題は、配列内の要素を削除することができるPythonの機能を利用して解くことができます。

  1. val の値を持つ要素を配列から削除します。
  2. 配列の長さを返します。

Pythonコード

以下のコードが、「Remove Element」を解くためのPythonプログラムとなります。

### Function ##################################################################

def solve(num=0):
    
    solver  = Solution().removeElement
    
    if 1 <= num <= Input().input: id_LIST = [num]
    else: id_LIST = [id+1 for id in range(Input().input)]
    
    for id in id_LIST:
        data    = Input(id)
        ans     = solver(data.nums, data.val)
        result  = "OK" if ans==data.ans else "NG"
        print(f"[{str(id).zfill(3)}] {result}")
    
### Class #####################################################################

class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        while val in nums: nums.remove(val)
        return len(nums)

#==============================================================================

class Input:
    
    def __init__(self, num=0):
        
        if num == 1:
            self.nums   = [3,2,2,3]
            self.val    = 3
            self.ans    = 2
        
        elif num == 2:
            self.nums   = [0,1,2,2,3,0,4,2]
            self.val    = 2
            self.ans    = 5
        
        else:
            self.input  = 2

### Main ######################################################################

if __name__ == "__main__":

    solve()

###############################################################################