稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。
示例1:
输入: words =["at","","","","ball","","","car","","","dad","",""], s ="ta"
输出:-1
说明: 不存在返回-1。
示例2:
输入:words =["at","","","","ball","","","car","","","dad","",""], s ="ball"
输出:4
提示:
words的长度在[1,1000000]之间
题解
classSolution:deffindString(self, words: List[str], s:str)->int:
length =len(words)
first =0
last = length -1while last >= first:
mid = first +(last-first)//2if words[mid]== s:return mid
elif words[mid]> s:
last = mid -1else:
first = first +1return-1