在有序但含有空的数组中查找字符串
题目:给定一个字符串数组strs[],在strs中有些位置为null,但在不为null的位置上,其字符串是按照字典顺序从小到大依次出现的。再给定一个字符串str,请返回str在strs中出现最左的位置。
基本思路:因为字符串是有顺序的,所以可以使用二分查找,只要注意处理null位置就行。并且注意所求的是最左的位置,所以找到一个str的位置还要再考虑数组中是否还有更左的str。
看见有序想到的是二分查找
def getIndex(strs,str1):if strs == None or len(strs) == 0 or str1 == None:return -1left = 0right = len(strs) - 1res = -1while left <= right:mid = (left + right)//2if strs[mid] == str1:right = mid - 1res = midelif strs[mid]!=None:if strs[mid] > str1:right = mid - 1else:left = mid + 1else:i = midwhile i >= left:if strs[i]!=None:breaki -=1if i < left or strs[i] < str1:left = mid + 1else:res = i if strs[i]==str1 else resright = i - 1return res
在有序但含有空的数组中查找字符串相关推荐
- 字符串问题之 在有序但含有空的数组中查找字符串
尽可能使用二分查找 假设在 left right 之间查找 关键是mid处理过程 导致 left 跟 right 的改变 控制去哪里寻找 分如下情况: 若 mid处 不为空,并且 此处就是 str ...
- matlab 数组中查找字符串长度,Matlab 之 字符串数组查找
Matlab的优势在于向量操作,字符串操作往往费时费力,但是如果能充分利用Matlab自带的一些函数,也可以取得不错的效果.下面就介绍一下字符串数组查找的小技巧. 字符串数组我通常会选择应用cell格 ...
- 在数组中查找字符串的位置
如何在字符串中查找指定字符位置? #include<stdio.h>void main() {char buf[]="214wqefxcvdfgerh3gfdh23wer1234 ...
- 字符串数组中查找字符串
# include <stdio.h> # include <string.h> int search(char* p[], char* name); /* 给字符型的指针数组 ...
- 在有空字符串的有序字符串数组中查找(找给定字符串)
题目:在有空字符串的有序字符串数组中查找 有个排序后的字符串数组,其中散布一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引. package zifusearch;public c ...
- 从小到大排列的数组中查找x,若x存在则删除,若不存在则添加,修改后的数组仍然有序
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p112 习题4 3.在一个从小到大排列的数组中查找x,若x存在则将其删除,若不存在则将其添加.使修改后 ...
- 有序数组中查找数字的范围
有序数组中查找数字的范围 如题所示: 思路 源代码如下: 如题所示: 统计一个数字在排序数组中出现的次数 思路 使用二分查找,分别找到数字的下边界和上边界 源代码如下: class Solution ...
- 【C语言】用二分查找法在有序数组中查找具体的某个数
当给定一个有序数组,而我们要在这个数组中查找某个数时,我们常常用从头到尾的排除法遍历寻找,但是这种方式及其低效,n个数的数组最差要找n次.而后面我们会知道,二分查找法则高效的多,最差要找log以2为低 ...
- 循环有序数组中查找某个数
循环有序数组中查找某个数 利用二分查找, 一个循环有序数组从中间切分,一定分成一个有序数组和一个循环有序数组,由于循环有序数组不容易判断,我们只需判断哪一边是有序数组以及target是不是在有序数组 ...
最新文章
- pcb地线应该不应该做成环路_PCB制板的基础知识,你都学会了吗?(中)
- python异常值均值填充_Python 异常值分析
- 学习微信公众号oauth2.0
- 内核提速开机linux,Linux操作系统开机启动提速方法介绍。
- Linux内核分析 - 网络[十]:ARP杂谈
- 关于 django 的时区设置与MySQL 时间相差8小时
- linux下安装配置svn独立服务器
- 第十六章:SpringCloud Config 配置自动刷新
- 用php做颜色表格,如何使用纯PHP格式化excel文件的样式,字体,颜色,表格等?
- 微软:免费杀毒软件Morro即将发布Beta版
- cisco5525防火墙***流量分离即***和nat并存的配置方式
- Qt公有槽和私有槽的区别
- itext设置字体间距_汉语拼音的字体到底选哪个?你是不是一直很困扰?来看总结方法...
- java的帮助文档(API)
- KEIL STC 仿真
- matlab求解常微分方程组——dsolve与ode45
- 《设计模式之禅》前言
- Buty Adidas Alphabounce Engineered Polska uwolnienie
- uniapp微信小程序授权微信头像昵称
- 算法设计 (分治法应用实验报告)基于分治法的合并排序、快速排序、最近对问题