hrbustoj 1551:基础数据结构——字符串2 病毒II(字符串匹配,BM算法练习)
基础数据结构——字符串2 病毒II
Time Limit: 1000 MS Memory Limit: 10240 K
Total Submit: 284(138 users) Total Accepted: 177(135 users) Rating: Special Judge: No
Description
自从计算机病毒的概念被提出之后,病毒的种类可以说是层出不穷。现在,单纯的病毒是逃不过杀毒软件的。因此现在的病毒往往隐藏一些字符之中来达到蒙混过关的目的。已知连续的字符串"bkpstor"是一段病毒编码,请分析给出的一段字符串中是否包含病毒编码。
Input
本题有多组测试数据,对于每组数据输入一个字符串Str(长度不超过100),处理到文件结束。
Output
如果字符串中包含病毒编码,输出Warning并换行,否则输出Safe并换行。
Sample Input
123455676sa
Sample Output
Safe
Author
杨和禹@HRBUST
字符串匹配。
我使用的是BM算法,BM算法是BF算法的优化,是一种亚线性匹配算法。比BF稍快一些。
代码:
#include <stdio.h>
int BM_index(char t[],char s[]) //返回第一次匹配的位置
{
int i,j,lt,ls;
for(lt=;t[lt];lt++); //计算长度
for(ls=;s[ls];ls++);
//BM匹配
for(i=ls-;i>=lt-;i--)
if(s[i]==t[lt-]){
for(j=;j<=lt;j++)
if(t[lt-j]!=s[i-j+])
break;
if(j>lt) break;
}
if(i>=lt-) return i-lt+;
return -;
}
int main()
{
char t[]="bkpstor",s[];
while(scanf("%s",s)!=EOF){
if(BM_index(t,s)==-)
printf("Safe\n");
else
printf("Warning\n");
}
return ;
}
Freecode : www.cnblogs.com/yym2013
hrbustoj 1551:基础数据结构——字符串2 病毒II(字符串匹配,BM算法练习)的更多相关文章
- hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)
基础数据结构——顺序表(2) Time Limit: 1000 MS Memory Limit: 10240 K Total Submit: 355(143 users) Total Accep ...
- BZOJ4259:残缺的字符串(FFT与字符串匹配)
很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n.可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺. 你想对这两 ...
- [数据结构与算法] 字符串匹配 - BF算法
BF(Brute Force)算法 又称暴力匹配算法,是一种朴素的模式匹配算法 给定主串 S : Bilibili 和子串 T :Bilididi 步骤: 1. 主串 S 第一位开始与子串 T 第一位 ...
- 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- lintcode:Unique Characters 判断字符串是否没有重复字符
题目: 判断字符串是否没有重复字符 实现一个算法确定字符串中的字符是否均唯一出现 样例 给出"abc",返回 true 给出"aab",返回 false 挑战 ...
- Redis 基础数据结构之一:string(字符串)
Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合),Redis存储数据的结构是键值对形式的. 首 ...
- 理解 OpenStack + Ceph (4):Ceph 的基础数据结构 [Pool, Image, Snapshot, Clone]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- NOI 1.7编程基础之字符串(35题)
01:统计数字字符个数 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 ...
- uoj #228. 基础数据结构练习题 线段树
#228. 基础数据结构练习题 统计 描述 提交 自定义测试 sylvia 是一个热爱学习的女孩子,今天她想要学习数据结构技巧. 在看了一些博客学了一些姿势后,她想要找一些数据结构题来练练手.于是她的 ...
随机推荐
- hdu 2050 折线分割平面
训练递推用题,第一次做这个题,蒙的,而且对了. #include <stdio.h> int main(void) { int c,a; scanf("%d",& ...
- Python socket编程之七:多窗口的应用
f1.py # -*- coding: utf-8 -*- import socket import struct import sqlalchemy import pandas ########## ...
- json2.js的用途(拯救IE)
json2.js提供了json的序列化(JSON.stringify)和反序列化方法(JSON.parse):可以将一个Object或Array转换成json字符串,也可以将一个json字符串转换成一 ...
- 转 web项目中的web.xml元素解析
转 web项目中的web.xml元素解析 发表于1年前(2014-11-26 15:45) 阅读(497) | 评论(0) 16人收藏此文章, 我要收藏 赞0 上海源创会5月15日与你相约[玫瑰里 ...
- apache-tomcat-5.5.35.搭建实战
tar xf apache-tomcat-5.5.35.tar -C /usr/local/ 需要安装JDK支持,可借鉴:http://www.cnblogs.com/zhoulf/archive/2 ...
- android- FileProvider崩溃 - NPE试图调用一个空字符串XmlResourceParser(FileProvider crash - npe attempting to invoke XmlResourceParser on a null String)
问题: This is a part of my manifest: <?xml version="1.0" encoding="utf-8"?> ...
- 一个C++类的注释:
#ifndef __RUNTIMEPARA__HPP#define __RUNTIMEPARA__HPP #include <string> //后面会有介绍 #include <m ...
- cocos进阶教程(1)Lua调用自定义C++类和函数的最佳实践
第一层:纯C环境下,把C函数注册进Lua环境 a.lua 文件 )) a.c 文件 #include <lua.h> #include <lualib.h> #include ...
- java中堆栈(stack)和堆(heap)
原文地址:http://blog.csdn.net/jerryao/article/details/874101 1.内存分配策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈 ...
- Online Object Tracking: A Benchmark 论文笔记(转)
转自:http://blog.csdn.net/lanbing510/article/details/40411877 有博主翻译了这篇论文:http://blog.csdn.net/roamer_n ...