字符串问题---在有序但含有空的数组中查找字符串
来源:互联网 发布:sql 表字段添加注释 编辑:程序博客网 时间:2024/06/14 02:00
【题目】
给定一个字符串数组strs[],在strs中有些位置为null,但在不为null的位置上,其字符串是按照字典顺序从小到大依次出现的。再给定一个字符串str,请返回str在strs中出现最左的位置。
【基本思路】
因为字符串是有顺序的,所以可以使用二分查找,只要注意处理null位置就行。并且注意所求的是最左的位置,所以找到一个str的位置还要再考虑数组中是否还有更左的str。
下面是使用python3.5实现的代码
#在有序但含有空的数组中查找字符串def getIndex(strs, str1): if strs == None or len(strs) == 0 or str1 == None: return -1 left = 0 right = len(strs) - 1 res = -1 while left <= right: mid = (right + left) // 2 if strs[mid] == str1: res = mid right = mid - 1 elif strs[mid] != None: if strs[mid] < str1: left = mid + 1 else: right = mid - 1 else: i = mid while i >= left: if strs[i] != None: break i -= 1 if i < left or strs[i] < str1: left = mid + 1 else: res = i if strs[i] == str1 else res right = i - 1 return res
阅读全文
2 0
- 在有序但含有空的数组中查找字符串
- 在有序但含有空的数组中查找字符串
- 在有序但含有空的数组中查找字符串
- 在有序但含有空的数组中查找字符串
- 字符串问题---在有序但含有空的数组中查找字符串
- 在有序但含有None的数组中查找字符串 Python 版
- 在有序但是含有空的字符串中查找最左边特定字符串的位置
- 9.5-字符串有序数组的二分查找
- 45.在字符串数组中查找给定的字符串
- 查找在一个字符串中含有多少个相同的子字符串
- 迭代用在有序数组二分法查找中,递归的二分法查找更简洁,但速度可能会慢一点
- 在字符串中查找字符串问题
- Linux Bash:在用户输入目录中查找含有某字符串的文件,打印行号
- 在字符串数组中查找值
- 字符串数组中查找字符串
- RPR_ABAP_SOURCE_SCAN 扫描查找程序中含有某个字符串的程序
- 查找某个字符在一个字符串中的位置,假设字符串中的字符是有序的,如“adfgikmnprs”中查找g的位置。(折半查找)
- 在字符串中查找字符串
- sqlserver经常遇到的异常报错 持续更新整理
- HihoCoder第十二周——树上DP
- SQL 注入
- 设计模式
- Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据
- 字符串问题---在有序但含有空的数组中查找字符串
- LeetCode No.61 Rotate List
- IOS证书分析
- 工厂模式
- 二叉树的镜像
- zzuli-2178- GJJ来签到
- iOS 算法 简单的二分法
- java对象的管理
- 关于VS2017编辑C++出现的各种问题