蛮力法解决字符串匹配问题

C++ 实现字符串匹配 字符串匹配 阅读详情

蛮力法解决字符串匹配问题

以下代码使用蛮力法实现字符串S和T匹配,并统计了代码运行时间。

#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <iomanip>

using namespace std;

int BF(char S[], char T[]){
    int i=0,j=0;
    while((S[i] != '\0') && (T[j] != '\0')){
        if(S[i] == T[j]){
            i++;
            j++;
        }
        else {
            i=i-j+1;
            j=0;
        }
    }
    if(T[j] == '\0')
        return (i-j+1);
    else
        return 0;
}

int main()
{
    LARGE_INTEGER nFreq;
    LARGE_INTEGER nBeginTime;
    LARGE_INTEGER nEndTime;
    double time;
    QueryPerformanceFrequency(&nFreq);

    double sum = 0;
    int bf;

    for(int i=0; i<200; i++){
        QueryPerformanceCounter(&nBeginTime);
        char S[] = "ababcabccabcacbab";
        char T[] = "abcac";

        bf = BF(S,T);

        QueryPerformanceCounter(&nEndTime);

        time = (double)(nEndTime.QuadPart-nBeginTime.QuadPart)*1000000000/(double)(nFreq.QuadPart);
        sum = sum+time;
    }

    double avgTime = sum/200.0;

    cout << "Result: " << bf << endl;
    cout << "The average time of BF is " << avgTime;

    return 0;
}

Java实现字符串匹配 1 问题描述 给定一个n个字符组成的串(称为文本),一个m(m <= n)的串(称为模式),从文本中寻找匹配模式的子串。 2 解决方案 2.1 蛮力法 package com.liuzhen.chapterThree; public class BruteForceStringMatch { //根据文本串N,和模式串M,返回第一个匹配模式串的子串在N中的位置 public... 阅读详情

相关推荐

字符串匹配(蛮力法+KMP)

字符串匹配(蛮力法+KMP)

m0_51339444的博客 1522

串的模式匹配,c/c++描述

很好的视频链接 懒猫老师-数据结构-(15)KMP算法2-next数组(模式匹配,字符串匹配)_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1U7411f7CB/?spm_id_from=autoNext 以下是完整代码,见名知意的程序易于阅读和理解。 #include<iostream> using namespace std; #define MAXSIZE 100 #include<iomanip> struct Sequenc

zhangzhangkeji的博客 257

蛮力法求字符串的匹配.

数据结构 简单实现 模式匹配 求字符串的匹配.

数据结构KMP算法配图详解(超详细)

前言 KMP算法是我们数据结构串中最难也是最重要的算法。难是因为KMP算法的代码很优美简洁干练,但里面包含着非常深的思维。真正理解代码的人可以说对KMP算法的了解已经相当深入了。而且这个算法的不少东西的确不容易讲懂,很多正规的书本把概念一摆出直接劝退无数人。这篇文章将尽量以最简单的方式介绍KMP算法以及他的改进,文章的开始我先对kmp算法的三位创始人Knuth,Morris,Pratt致敬,懂得这...

weixin_46007276的博客 24万+

在Unity3d使用yolov8的onnx模型

输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。

shenqingyu0605202324的博客 5603

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1965

C++实现 字符串的匹配(详细)

C++实现 字符串的匹配(详细)。利用模式匹配算法,对采用定长顺序存储结构的字符主串,从它的第pos个字符起和模式的字符比较,若相等,则继续逐个比较后续字符,直到模式串中的每个字符都和主串中的字符序列匹配成功,返回主串的pos。例如:模式串是”0000 1”,主串是”0000 0000 0000 0000 0000 1”。

m0_54158068的博客 6418

【SoloPi】SoloPi使用2-功能使用,录制回放

Soloπ是什么 Soloπ是一个无线化、非侵入式的Android自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。 录制回放功能 Soloπ拥有录制操作的能力,用户只需要通过Soloπ执行用例步骤,Soloπ就能够将用户的操作记录下来,并且支持在各个设备上进行回放,这一切都能够在手机上独立完成。 ...

q_Catherine的博客 5829

串匹配问题的蛮力算法(BF)和KMP算法(C++实现,附详细注释)

#include<iostream> #include<string> using namespace std; int BF(const string& s1, const string& s2) { for (int i = 0; i <= s1.length() - s2.length(); i++) { int temp = i; bool match = true; for (int j = 0; j < s2.length()

hanmo22357的博客 907

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

智能优化算法-北方苍鹰优化算法(NGO)(附源码)

北方苍鹰优化算法 (Northern Goshawk Optimizer, NGO) 是一种基于群体智能的元启发式优化算法,它模拟了北方苍鹰(Northern Goshawk)的捕食行为、领地行为以及社交互动,用于解决复杂的优化问题。总之,NGO作为一种新颖的优化算法,在处理复杂优化问题方面展现出了潜力。随着进一步的研究和应用,NGO有望成为解决实际问题的有效工具。

w971656545的博客 1361

【算法】蛮力法解决字符串匹配

/* 蛮力法解决 字符匹配算法 */ #include<string.h> #include<stdio.h> #define MAX 100000 char mode[MAX],stringn[MAX]; int BruteForceStringMatch(char T[],char M[],int len_t,int len_m){ for(int i = 0; i<=len_t-len_m ; i++){ int j = 0; while(T[i+j

weixin_44054301的博客 907

C# WPS操作PPT,全屏,缩率图,备注,跳转播放

本文介绍了一个使用C#开发的PPT操作工具,主要功能包括检测当前打开的PPT文件、获取选中PPT路径、指定播放PPT、获取PPT页面序号和缩略图、提取备注内容等。文章展示了操作界面效果图,并重点解决了用户手动退出PPT后重新获取路径时报错的问题。核心代码实现了通过WPS API进行PPT文件的打开、全屏播放、页面跳转、获取当前页位置等功能,同时支持生成PPT缩略图预览和备注信息提取。当用户未通过工具按钮打开PPT时,程序会自动初始化PPT信息确保功能正常使用。

遇见--专栏 310

最“笨”的方法—蛮力法

就像宝剑不是撬棍一样,科学也很少使用蛮力。 ——爱德华.利顿 蛮力法的简单描述:它是一种简单直接的解决问题的方法,常常直接基于问题的描述和所涉及的概念定义。 这里的“力”指的是计算机的计算能力,一般来说,蛮力策略也是最容易应用的方法。虽然巧妙和高效的算法很少来自于蛮力法,但是不应该忽略它作为一种更重要的算法策略的地位。 和其他策略不同,我们可以应用蛮力法解决广阔领域的各种问题。 对于一些重要的问题,例如,排序,查找,字符串匹配,蛮力法可以产生一些合理的算法,而且不必限制实例的规模。 如果要解决的

super_优快云er的博客 589

YOLOv11改进 | 主干/Backbone篇 | 轻量化目标检测网络MobileViTv1改进yolov11有效涨点

本文给大家带来的改进机制是MobileViT系列的V1版本,其作为MobileNet网络的挑战者,其效果自然不用多说,MobileViT模型是为移动设备设计的轻量级、通用目的视觉变换器。它融合了卷积神经网络(CNN)和视觉变换器(ViT)的优势,旨在在保持高效性能的同时减少模型参数和降低延迟。通过其创新的MobileViT Block和多尺度训练方法,MobileViT在多个视觉任务上取得了优异的结果,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

Snu77的博客 2336

RK3568平台(网络篇)添加网络交换芯片RTL8306M

该交换芯片支持I2C、SPI、mdio通信,但是看ast1520的uboot代码采用的是mdio去通信phy芯片的,所以暂时也先采用mdio的方式,需要配置相应的引脚才可以配置成mdio通信模式,具体的配置硬件工程师解决。RTL8306M芯片上可能没有提供MDC/MDIO接口,可以通过GPIO(General Purpose Input/Output)来模拟,GPIO可实现串行输入输出,且一般CPU上会提供很多GPIO接口供用户自定义使用。

weixin_49303682的博客 3934

算法学习之蛮力法

蛮力法 蛮力法一种简单直接地解决问题的方法,常常直接基于问题的描述和所涉及的概念定义。 虽然巧妙和高效的算法很少来自于蛮力法,但我们不应该忽略它作为一种重要的算法设计策略的地位。第一,和其他某些策略不同,我们可以应用蛮力法来解决广阔领域的各种问题。第二,对于一些重要的问题来说(比如:排序、查找、矩阵乘法和字符串匹配),蛮力法可以产生一些合理的算法,它们多少具备上些实用价值,而且并不限制实例的规模。第三,如果要解决的问题实例不多,而且蛮力法可以用一种能够接受速度对实例求解,那么,设计一个更高效算法所花费的代价

weixin_44019182的博客 2149

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蛮力法在字符串匹配问题中的应用(JAVA)--朴素模式匹配算法

蛮力法在字符串匹配问题中的应用字符串匹配问题通常是给定一个n个字符组成的串(称为文本),一个m(m&lt;=n)个字符的串(称为模式),从文本中寻找匹配模式的子串。显然我们需要逐个匹配,这是蛮力算法的典型特点。蛮力匹配:时间复杂度O(n^2)public class Main { public static void main(String[] args) { String...

一串代码的博客 1541

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

蛮力法

蛮力法:是一种简单直接地解决问题的方法,常常直接给予问题的描述和所涉及的概念定义。 1.       选择排序 算法: SelectionSort(Array a) //该算法用选择排序对给定数组排序 //输入:一个可排序数组 A[0,1,….n-1] //输出:一个已排序数组 A[0,1,….n-1](升序) for  i            min

zk_sima的专栏 1519

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蛮力法实验

(1) 百元买百鸡:公鸡5元一只,母鸡3元一只,三只小鸡1元,所以就可以设公鸡i只,母鸡j只,小鸡k只,所以i+k+j=100,5*i+3*j+k/3=100,所以使用for循环,第一层循环,循环变量为公鸡数量,第二层循环,循环变量为母鸡的数量,第三层变量,循环变量为小鸡的数量,并且要注意小鸡的数量要能被3整除,最后输出方案即可;System.out.println("母鸡有:"+i+"只,"+"公鸡有:"+j+"只,"+"小鸡有:"+k+"只。2.1、如a%i==0&&b%i==0,则a=a/i;

Huang_Q_K的博客 812

算法设计与分析------蛮力法

算法设计与分析------蛮力法(c++) 一、蛮力法(穷举法 枚举法) 1、定义 ​ 蛮力法是一种简单直接地解决问题的方法,通常直接基于问题的描述和所涉及的概念定义,找出所有可能的解。 然后选择其中的一种或多种解,若该解不可行则试探下一种可能的解。 2、蛮力法使用情况 索所有的解空间:问题的解存在于规模不大的解空间中。 索所有的路径:这类问题中不同的路径对应不同的解。 直接计算:按照基于问题的描述和所涉及的概念定义,直接进行计算。往往是一些简单的题,不需要算法技巧的。 拟和仿真:按照

唯一的博客 9662

蛮力法——平面最近点对问题与字符串匹配问题

蛮力法——平面最近点对问题与字符串匹配问题 平面最近点对问题 问题:找出一个包含n个点的集合中距离最近的两个点。 暴力法求解所有点对之间的最近距离,为了避免同一点对计算两次,可以只考虑i<j的点对(P**i , P**j) 。 //蛮力法求解平面中距离最近的两点 //输入:待返回下标结果数组res,点集横纵坐标double数组x,y,数组大小n //输出:两个最近点的下标 void closestPoints(int *res,double *x,double *y,int n){ double

qq_43513855的博客 503

算法设计与分析—蛮力法

蛮力法解决 查住问题,排序问题,串匹配问题,哈密顿问题,01背包问题

wxh的博客 3170

深入浅出讲算法思想--蛮力法思想分析及应用

蛮力法(brute force method,也称为穷举法或枚举法)是一种简单直接地解决问题的方法,常常直接基于问题的描述,所以,蛮力法也是最容易应用的方法。虽然,用蛮力法设计的算法时间特性往往也是最低的,但是许多问题我们一开始并没有很优化的算法,而蛮力法则可以帮助我们从低效的算法结构中剖析低效的缘由,进而提炼出更为优化的算法。 蛮力法在排序算法中的应用(选择,冒泡)蛮力法在查找算法中的

一串代码的博客 1万+

〈算法设计与分析基础〉读书笔记2——蛮力法

蛮力法蛮力法是一种简单直接地解决问题的方法,常常直接基于问题的描述和所设计的概念定义。1.       选择排序和冒泡排序SelectionSort(A[0…n-1])   C(n) = n(n-1)/2  算法效率为平方级别,但是键的交换次数仅为n-1次。BubbleSort(A[0…n-1])  最坏情况是键的交换次数和比较次数都为平方级别,不如前者。应用蛮力法得出的第

2231

第四章——蛮力法

蛮力法概述 蛮力法也称穷举法(枚举法)或暴力法,是一种简单的直接解决问题的方法,通常根据问题的描述和所涉及的概念定义,对问题所有可能的状态(结果)一一进行测试,直到找到解或将全部可能的状态都测试一遍为止。 蛮力法的“力”指的是计算机的运算能力,蛮力法是基于计算机运算速度快的特性,减少人的思考而把工作都交给计算机的“懒惰”策略(这里的懒惰指的是人懒,不是算法中的懒惰方法),一般而言是最容易实现的方法。 蛮力法的优点如下: 1.逻辑简单清晰,根据逻辑编写的程序简单清晰。 2.对于一些需要高正确性的重要问题,它产

weixin_55835175的博客 8374
上一篇: 递归法求解汉诺塔问题C++代码
下一篇: 使用KMP算法求解字符串匹配问题C++代码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值