当前位置: 首页 > news >正文

深圳彩票网站开发人员硬件开发工程师是干什么的

深圳彩票网站开发人员,硬件开发工程师是干什么的,赣州招聘网最新招聘,深圳物流托运上门取件题目 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入:haystac…

题目

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 

示例 1:

输入:haystack = "sadbutsad", needle = "sad"
输出:0
解释:"sad" 在下标 0 和 6 处匹配。
第一个匹配项的下标是 0 ,所以返回 0 。

示例 2:

输入:haystack = "leetcode", needle = "leeto"
输出:-1
解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1 。

提示:

  • 1 <= haystack.length, needle.length <= 104
  • haystack 和 needle 仅由小写英文字符组成

Python

看到这道题的一瞬间,我就想到了Python中的find()函数,所以很快就写好了:

class Solution(object):def strStr(self, haystack, needle):return haystack.find(needle) A=Solution()
haystack ="sadbutsad"
needle ="sad"
print(A.strStr(haystack,needle))

 这样虽然简单,但数据不是很好:


C语言

#include<stdio.h>
#include<stdlib.h>
#include<string.h>int strStr(char * haystack, char * needle);int main()
{char* haystack ="sadbutsad";char* needle ="sad";printf("%d",strStr(haystack,needle));return 0;
}//主要函数
int strStr(char * haystack, char * needle)
{int len1=strlen(haystack),len2=strlen(needle);for(int i=0;i<=len1-len2;i++){if(haystack[i]==needle[0]){if(len2==1)return i;int j=1;for(;j<len2;j++){if(haystack[j+i]!=needle[j]){break;} } if(j==len2)return i;}}return -1;
}

但结果不好:

之后,我看了KMP算法,确实巧妙。

我写的C语言代码是在每次 haystack 数组与needle数组比较元素不匹配后,在haystack上移动一位来进行重新比较,进而寻找正确位置。

而KMP算法则是每次移动若干位(根据字符串),进而缩短了时间。

KMP算法代码:

int strStr(char* haystack, char* needle) {int n = strlen(haystack), m = strlen(needle);if (m == 0) {return 0;}int pi[m];pi[0] = 0;for (int i = 1, j = 0; i < m; i++) {while (j > 0 && needle[i] != needle[j]) {j = pi[j - 1];}if (needle[i] == needle[j]) {j++;}pi[i] = j;}for (int i = 0, j = 0; i < n; i++) {while (j > 0 && haystack[i] != needle[j]) {j = pi[j - 1];}if (haystack[i] == needle[j]) {j++;}if (j == m) {return i - m + 1;}}return -1;
}/*
作者:力扣官方题解
链接:https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/solutions/732236/shi-xian-strstr-by-leetcode-solution-ds6y/
来源:力扣(LeetCode)
*/

http://www.yayakq.cn/news/354530/

相关文章:

  • 做网站霸屏公司销售好做吗网站素材设计框架
  • 选择好的佛山网站建设个人可以做的外贸网站
  • 做网站需要服务器团购网站的发展
  • 公司做网站该注意哪些中山专业门户网站制作平台
  • 嘉兴市建设教育网站网站开发群
  • 文山州建设局网站鼎豪网络网站建设
  • 购物网站 wordpress 英文模板中铁建设集团门户网门户
  • 计算机网站开发职业定位太原市建站外包公司
  • 北京赛车彩票网站怎么做概念产品设计网站
  • 专门做婚纱儿童摄影网站南宁大型网站推广公司
  • 如何建网站赚取佣金网站建设在哪里找人
  • 清远医院网站建设费用网页设计尺寸早起可视区域
  • 代码网站有哪些最便宜云主机永久免费
  • php大型网站开发视频wordpress 电商版本
  • 成都建立网站营销设计外贸订单怎样去寻找
  • 网站全程设计技术淄博高端网站
  • 阿里云 外贸网站怎么对网站做seo优化
  • 浙江江能建设有限公司网站百度引流推广
  • 信息网站建设汇报哪里有个人品牌营销公司
  • 外销网站宣传型企业网站设计
  • 杭州设计网站的公司linu安装wordpress
  • 为什么要用h5建站怎样才能创建自己的网站
  • wordpress 文件下载插件石家庄seo外包公司
  • 做网站优化找谁网站如何做免费的推广
  • 织梦做淘宝客网站视频aso优化服务站
  • 工程科技 网站设计wordpress4.9安装
  • 做外贸哪个网站比较好2017建设一个百度百科类网站
  • 怎样修改手机网站首页网站推广优化网址
  • 织梦网站视频用html5做的网站的原代码
  • 河北大型网站建设济南软件公司排名