Trying to create a Binary Search Program, but keep getting this error: TypeError: first argument must be string or compiled pattern

Trying to create a Binary Search Program, but keep getting this error: TypeError: first argument must be string or compiled pattern

我正在尝试创建二进制搜索程序,但不断收到此错误:类型错误:第一个参数必须是字符串或编译模式。

我的方法是 class“解决方案”的一部分,第一个参数是一个整数列表。第二个参数是一个整数。

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        
        print(type(nums))
        
        if len(nums) == 1:
            if nums[0] == target:
                return nums.index(target)
            else:
                return -1
        
        halfValue = len(nums)//2
        
        firstHalf = nums[:halfValue]
        
        secondHalf = nums[halfValue:]
        
        if halfValue > target:
             search(self, firstHalf, target)
        elif halfValue < target:
            search(self, secondHalf, target)
        elif halfValue == target:
            return nums.index(target)
            
    
    
    
   

你不是在调用你自己的 search 函数,你是在调用 LeetCode 为你全局导入的 re.search 函数。请改用 self.search(firstHalf, target)(第二种情况也是如此)。

(您还有其他错误,nums.index(target) 违背了二进制搜索的目的,但这不是这里的问题...)