时间限制: 1 s空间限制: 128000 KB题目等级 : 青铜 Bronze

题目描述 Description
给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。

输入描述 Input Description
仅一行包含两个字符串a和b

输出描述 Output Description
仅一行一个整数

样例输入 Sample Input
abcd bc

样例输出 Sample Output
2

数据范围及提示 Data Size & Hint
字符串的长度均不超过100
Pascal用户请注意:两个字符串之间可能包含多个空格

思路

首先,这是个暴力模拟的题;

然后,可以用KMP算法A掉!

所以。。。

代码实现

 1 #include<cstdio>
 2 #include<cstring>
 3 const int maxn=110;
 4 int p[maxn],la,lb;
 5 char a[maxn],b[maxn];
 6 int main(){
 7     scanf("%s%s",a,b);
 8     la=strlen(a),lb=strlen(b),p[0]=-1;
 9     for(int i=1,j=-1;i<lb;i++){
10         while(j>-1&&b[j+1]!=b[i]) j=p[j];
11         if(b[j+1]==b[i]) j++;
12         p[i]=j;
13     }
14     for(int i=0,j=-1;i<=la;i++){
15         while(j>-1&&b[j+1]!=a[i]) j=p[j];
16         if(b[j+1]==a[i]) j++;
17         if(j==lb-1){
18             printf("%d\n",i-lb+2);
19             return 0;
20         }
21     }
22 }

转载于:https://www.cnblogs.com/J-william/p/7077723.html

[codeVS1204] 寻找子串位置相关推荐

  1. [1204 寻找子串位置] 解题报告

    题目描写叙述 Description 给出字符串a和字符串b,保证b是a的一个子串.请你输出b在a中第一次出现的位置. 输入描写叙述 Input Description 仅一行包括两个字符串a和b 输 ...

  2. Problem A: 算法4-5:求子串位置的定位函数

    Problem Description 在算法4-1中已经描述过一种定位子串的算法,但其依赖字符串的其他操作(使用了算法4-3描述的子串提取以及字符串比较). 下面给出书中另一种相对独立的定位子串算法 ...

  3. UCSC寻找基因位置并用IGV画出基因转录示意图

    寻找基因位置并寻找出基因转录示意图 我们这里教大家采用两种方法进行基因转录示意图的查找,一种是直接在UCSC里面进行查找,不过不够方便,并且背景有条纹.另一种是下载基因注释文件到IGV基因可视化软件里 ...

  4. 寻找北极星位置:look_for_the_edge_and_north_star

    寻找北极星位置:look_for_the_edge_and_north_star 主函数代码 需要调用的函数 obtain_subfolder_path 运行代码 代码逻辑 主函数代码 #%***** ...

  5. C语言 题目 1689: 数据结构-求子串位置的定位函数

    题目描述 在算法4-1中已经描述过一种定位子串的算法,但其依赖字符串的其他操作(使用了算法4-3描述的子串提取以及字符串比较). 下面给出书中另一种相对独立的定位子串算法: 图:求子串位置的定位函数 ...

  6. 一般的模式匹配算法(求子串位置)

    //一般的模式匹配算法#include<stdio.h>int Index (char *s , char *t , int pos );//返回子串t在主串s中第pos个字符之后的位置( ...

  7. [Nowcoder] 寻找子串

    给出一个非空的字符串,判断这个字符串是否是由它的一个子串进行多次首尾拼接构成的. 例如,"abcabcabc"满足条件,因为它是由"abc"首尾拼接而成的,而& ...

  8. stringbuilder寻找字符串位置可能存在多个 java_【面试题系列】——Java基础

    本文主要包括Java基础及面向对象相关面试题. 1,Java科普1.1 为什么安装包要分JDK和JRE?1.2 为什么Java语言是跨平台的?1.3 为什么安装完JDK后要设置环境变量?1.4 Jav ...

  9. stringbuilder寻找字符串位置可能存在多个 java_Java 语言基础amp;String

    Java 语言基础 String 字符串的不可变性 定义一个字符串 使用变量来赋值变量 String s2 = s; s2 保存了相同的引用值, 因为他们代表同一个对象 字符串连接 s = s.con ...

最新文章

  1. python3读取excel数据-Python3读取和写入excel表格数据的示例代码
  2. Packet tracer软件安装,模拟网络搭建【Packet tracer安装和使用】
  3. C 运算符中不能重载的是哪些
  4. groupwise_GroupWise部分文档翻译
  5. ashx在web.config中如何配置_如何在 Istio 1.6 中配置 Prometheus-Operator 和抓取指标
  6. 发送邮件 (Send Email)
  7. elementui可编辑单元格_ElementUI table组件实现点击单元格可编辑
  8. 从0到1开发自动化测试框架(硬货太多,建议阅读)
  9. 这么说吧,NIO很简单,其实就是个牛逼IO
  10. struts2中action手动获取參数
  11. 软件资源消耗测试,综合测试:性能与资源消耗堪称完美
  12. 直播内容抢先看|基于 AUTOSAR 技术的 SOA 软件平台实践
  13. 儿童python编程入门-儿童编程python入门
  14. oracle数据投毒,Oracle Database Server ‘TNS Listener’远程数据投毒漏洞(CVE-2012-1675)的解决方案...
  15. IF NOT EXISTS和 IF EXISTS的区别
  16. php strpos 性能,PHP中的stristr(),strstr(),strpos()速度比較
  17. PPT如何导出高清图片
  18. JAVA计算机毕业设计林家餐厅自助点餐管理系统(附源码、数据库)
  19. LeetCode 287---Find the Duplicate Number
  20. JVM出现OOM的八种原因及解决办法

热门文章

  1. 网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
  2. cvMat结构体详解
  3. php 获取 url 的操作 非常有用!
  4. Centos7升级Python2到Python3
  5. html怎么限制密码字母个数字,怎样限制密码长度,并且只能为字母数字及下划线组成?...
  6. EXCEL破冰 - 如何为透视表组织数据
  7. AD RMS高可用(二)为rms群集服务器申请证书
  8. [Oracle]如何在Oracle中设置Event
  9. 全国dns服务器地址
  10. 祖国60岁生日,我在北京度过。