字符串查找游戏
来源:互联网 发布:现在的淘宝太坑了女孩 编辑:程序博客网 时间:2024/05/01 08:41
子串查找
时间限制: 5 Sec 内存限制: 256 MB
提交: 63 解决: 23
题目描述
给定一个字符串 A 和一个字符串 B,求 B 在 A 中的出现次数。
A 中不同位置出现的 B 可重叠。
输入
输入共两行,分别是字符串 A 和字符串 B。
输出
输出一个整数,表示 B 在 A 中的出现次数。
样例输入
zyzyzyz
zyz
样例输出
3
提示
1≤A,B 的长度 ≤10的6次方 ,A 、B 仅包含大小写字母。
错误代码:
【原因:①题目并没说只输入一次就可以了;②对字符串函数的不熟练;】
#include<stdio.h>#include<string.h>#define maxn 1000010char a[maxn];char b[maxn];int main(){ scanf("%s%s",a,b); int m=0,n=0,num=0; m=strlen(a); n=strlen(b); for(int i=0;i<m;i++) { int j=0; while(a[i+n-1]==b[n-1]) { if(a[i]!=b[j]) { break; } else { i++; j++; } num++; } } printf("%d\n",num); return 0;}
用到一个函数:
函数名: strstr
功 能: 查找在串中查找指定字符串的第一次出现后的所有串
用 法: char *strstr(char *str1, char *str2);
程序例:
#include <stdio.h>#include <string.h>int main(){ char *str1 = "Borland International", *str2 = "nation", *ptr; ptr = strstr(str1, str2); printf("The substring is: %s.\n", ptr); return 0;}
输出的答案是:
The substring is: national.
注意不是:nation.
AC具体代码如下:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;char a[1000010],b[1000010];int main(){ while(cin>>a>>b) { int ans=0; char *p; p=strstr(a,b); while(p) { ans++; p++; p=strstr(p,b); } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- 字符串查找游戏
- 查找字符串
- 查找字符串
- 查找字符串
- 查找字符串
- 查找字符串
- 查找字符串
- 字符串查找
- 字符串查找
- 查找字符串
- 查找字符串
- 字符串查找
- 查找字符串
- 查找字符串
- 字符串查找
- 查找字符串
- 字符串查找
- 字符串查找
- hexo 搭建 github pages 的备忘
- XListView
- SpringMVC学习(2)
- JSON和String对象的转化、在js中的传递
- android如何获取证书签名?
- 字符串查找游戏
- oracle数据库的几个常用的SQL 语句
- 代码必过
- SSM事务
- 【尺取法】hdu 6119 小小粉丝度度熊
- Tomcat8启动闪退问题
- web socket通讯 一知半解~~
- mysql(六)存储过程
- 5-1 最大子列和问题