题目:给定一个字符串数组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

在有序但含有空的数组中查找字符串相关推荐

  1. 字符串问题之 在有序但含有空的数组中查找字符串

    尽可能使用二分查找 假设在 left  right 之间查找 关键是mid处理过程 导致 left 跟 right 的改变  控制去哪里寻找 分如下情况: 若 mid处 不为空,并且 此处就是 str ...

  2. matlab 数组中查找字符串长度,Matlab 之 字符串数组查找

    Matlab的优势在于向量操作,字符串操作往往费时费力,但是如果能充分利用Matlab自带的一些函数,也可以取得不错的效果.下面就介绍一下字符串数组查找的小技巧. 字符串数组我通常会选择应用cell格 ...

  3. 在数组中查找字符串的位置

    如何在字符串中查找指定字符位置? #include<stdio.h>void main() {char buf[]="214wqefxcvdfgerh3gfdh23wer1234 ...

  4. 字符串数组中查找字符串

    # include <stdio.h> # include <string.h> int search(char* p[], char* name); /* 给字符型的指针数组 ...

  5. 在有空字符串的有序字符串数组中查找(找给定字符串)

    题目:在有空字符串的有序字符串数组中查找 有个排序后的字符串数组,其中散布一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引. package zifusearch;public c ...

  6. 从小到大排列的数组中查找x,若x存在则删除,若不存在则添加,修改后的数组仍然有序

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p112 习题4 3.在一个从小到大排列的数组中查找x,若x存在则将其删除,若不存在则将其添加.使修改后 ...

  7. 有序数组中查找数字的范围

    有序数组中查找数字的范围 如题所示: 思路 源代码如下: 如题所示: 统计一个数字在排序数组中出现的次数 思路 使用二分查找,分别找到数字的下边界和上边界 源代码如下: class Solution ...

  8. 【C语言】用二分查找法在有序数组中查找具体的某个数

    当给定一个有序数组,而我们要在这个数组中查找某个数时,我们常常用从头到尾的排除法遍历寻找,但是这种方式及其低效,n个数的数组最差要找n次.而后面我们会知道,二分查找法则高效的多,最差要找log以2为低 ...

  9. 循环有序数组中查找某个数

    循环有序数组中查找某个数 利用二分查找,  一个循环有序数组从中间切分,一定分成一个有序数组和一个循环有序数组,由于循环有序数组不容易判断,我们只需判断哪一边是有序数组以及target是不是在有序数组 ...

最新文章

  1. pcb地线应该不应该做成环路_PCB制板的基础知识,你都学会了吗?(中)
  2. python异常值均值填充_Python 异常值分析
  3. 学习微信公众号oauth2.0
  4. 内核提速开机linux,Linux操作系统开机启动提速方法介绍。
  5. Linux内核分析 - 网络[十]:ARP杂谈
  6. 关于 django 的时区设置与MySQL 时间相差8小时
  7. linux下安装配置svn独立服务器
  8. 第十六章:SpringCloud Config 配置自动刷新
  9. 用php做颜色表格,如何使用纯PHP格式化excel文件的样式,字体,颜色,表格等?
  10. 微软:免费杀毒软件Morro即将发布Beta版
  11. cisco5525防火墙***流量分离即***和nat并存的配置方式
  12. Qt公有槽和私有槽的区别
  13. itext设置字体间距_汉语拼音的字体到底选哪个?你是不是一直很困扰?来看总结方法...
  14. java的帮助文档(API)
  15. KEIL STC 仿真
  16. matlab求解常微分方程组——dsolve与ode45
  17. 《设计模式之禅》前言
  18. Buty Adidas Alphabounce Engineered Polska uwolnienie
  19. uniapp微信小程序授权微信头像昵称
  20. 算法设计 (分治法应用实验报告)基于分治法的合并排序、快速排序、最近对问题

热门文章

  1. Spring——AOP
  2. 【FTP】java FTPClient 文件上传内容为空,文件大小为0
  3. vue-cli中的webpack配置
  4. Python基础(list和tuple)可变集合和‘不可变’集合
  5. MySQL-MongoDB开源监控利器之PMM
  6. Linux下Oracle 10.2.0.1升级到10.2.0.4总结
  7. cxGRID能否对模板进行保存
  8. 祝大家元宵节快乐,吃好喝好哦~~
  9. 嵌入式中主动触发hardfault
  10. wifi网络结构(下)