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

免费做海报的网站怒江商城网站建设

免费做海报的网站,怒江商城网站建设,wordpress如何开启gzip,网站外链软件题目 给你两个字符串 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/818280/

相关文章:

  • 成华区网站建设广州最富的区是哪个区
  • 宁波象山网站建设中企动力电话
  • 网站设计师工资一般多少公司部门网站设计模板
  • 云南建设人才网站首页北京市住房城乡建设厅网站首页
  • 怎么做淘宝客网站WordPress小程序论坛
  • 网站录屏可以做证据吗软件是怎么制作的
  • it行业网站模板国家拨款农村建设查询的网站
  • it网站设计培训html5个人网站模板
  • 网站栏目管理建设揭阳企业网站建设开发
  • 四川建设厅招投标官方网站延吉建设局网站
  • 做垂直类网站成品网站w在线观看
  • 下载网站源文件手机编程
  • 三网合一网站开发是什么下载了wordpress后
  • 中山cms建站发布建设网站
  • 网站建设策划书的要求网站建设侵权行为有哪些
  • 图片做多的网站是哪个网页设计与网站建设案例课堂
  • 建设网站所需资料wordpress菜单高级应用
  • 深圳做网站信科河北邢台最新消息今天
  • 弹窗网站制作器柯桥网站建设哪家好_绍兴市场推广_非凡分类信息
  • 汇算清缴在哪个网站上做往公众号里放网站怎么做
  • seo外链群发网站工程网站模板
  • 网站域名备案多长时间仙居谁认识做网站的
  • 汝南专业网站建设关于医院要求建设网站的请示
  • 青岛开发区网站建设公司门户类网站建立有哪些构成
  • 上海正规网站建设网站公司技术交接
  • 重庆网站设计哪家公司好元器件网站开发客户
  • linux网站架构手游折扣平台app哪个好
  • 网站建设制作开发 小程序开发定制 软件系统开发网站开发 资质
  • 福州金山网站建设联通屏蔽wordpress
  • 软件实施的五个步骤seo网站营销