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

C#,字符串匹配(模式搜索)原生(Native)算法的源代码

算法没什么可说的,就是一段一段匹配呗。

运行效果:

 源代码:

using System;
using System.Collections;
using System.Collections.Generic;

namespace Legalsoft.Truffer.Algorithm
{
    /// <summary>
    /// 字符串匹配(模式搜索)算法集锦
    /// </summary>
    public static partial class PatternSearch
    {
        /// <summary>
        /// 字符串匹配的暴力算法(1)
        /// </summary>
        /// <param name="text"></param>
        /// <param name="pattern"></param>
        /// <returns></returns>
        public static List<int> NativeSearch_Original(string text, string pattern)
        {
            int pt = pattern.Length;
            List<int> matchs = new List<int>();
            for (int i = 0; i < (text.Length - pt); i++)
            {
                if (text.Substring(i, pt) == pattern)
                {
                    matchs.Add(i);
                }
            }
            return matchs;
        }

        /// <summary>
        /// 字符串匹配的暴力算法(2)
        /// </summary>
        /// <param name="text"></param>
        /// <param name="pattern"></param>
        /// <returns></returns>
        public static List<int> Native_Search(string text, string pattern)
        {
            List<int> matchs = new List<int>();

            int M = pattern.Length;
            int N = text.Length;
            int S = N - M;

            if (S <= 0) return matchs;
            for (int i = 0; i <= S; i++)
            {
                int j = 0;
                while (j < M)
                {
                    if (text[i + j] != pattern[j])
                    {
                        break;
                    }
                    j++;
                }

                if (j == M)
                {
                    matchs.Add(i);
                }
            }

            return matchs;
        }
    }
}

--------------================--------------------

POWER BY TRUFFER.CN

using System;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{/// <summary>/// 字符串匹配(模式搜索)算法集锦/// </summary>public static partial class PatternSearch{/// <summary>/// 字符串匹配的暴力算法(1)/// </summary>/// <param name="text"></param>/// <param name="pattern"></param>/// <returns></returns>public static List<int> NativeSearch_Original(string text, string pattern){int pt = pattern.Length;List<int> matchs = new List<int>();for (int i = 0; i < (text.Length - pt); i++){if (text.Substring(i, pt) == pattern){matchs.Add(i);}}return matchs;}/// <summary>/// 字符串匹配的暴力算法(2)/// </summary>/// <param name="text"></param>/// <param name="pattern"></param>/// <returns></returns>public static List<int> Native_Search(string text, string pattern){List<int> matchs = new List<int>();int M = pattern.Length;int N = text.Length;int S = N - M;if (S <= 0) return matchs;for (int i = 0; i <= S; i++){int j = 0;while (j < M){if (text[i + j] != pattern[j]){break;}j++;}if (j == M){matchs.Add(i);}}return matchs;}}
}

相关文章:

  • Node cool 跨域问题的解决
  • kibana查看和展示es数据
  • 2024秋招,顺丰科技测试开发工程师一面
  • CleanMyMac X .4.14.7如何清理 Mac 系统?
  • yum仓库及NFS共享
  • openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_keygen.c
  • 网页设计(十一)JavaScript事件分析
  • windows编译TensorFlowServing
  • 东北编程语言???
  • 代码随想录算法训练营29期|day 22 任务以及具体安排
  • 蓝桥杯C组-填充-贪心
  • 电路原理1-线性电阻
  • 一台电脑如何通过另一台联网电脑访问网络
  • css less sass 动态宽高
  • CNC数控机床通过工业智能网关实现远程运维
  • 10个最佳ES6特性 ES7与ES8的特性
  • css属性的继承、初识值、计算值、当前值、应用值
  • download使用浅析
  • Java比较器对数组,集合排序
  • Kibana配置logstash,报表一体化
  • learning koa2.x
  • 当SetTimeout遇到了字符串
  • 面试总结JavaScript篇
  • 微信开源mars源码分析1—上层samples分析
  • 用Canvas画一棵二叉树
  • 主流的CSS水平和垂直居中技术大全
  • MPAndroidChart 教程:Y轴 YAxis
  • Spring Batch JSON 支持
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​2020 年大前端技术趋势解读
  • #if #elif #endif
  • #单片机(TB6600驱动42步进电机)
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)STL算法之遍历容器
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (4)(4.6) Triducer
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (论文阅读30/100)Convolutional Pose Machines
  • (转)人的集合论——移山之道
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net Core与存储过程(一)
  • .NET NPOI导出Excel详解
  • .Net7 环境安装配置
  • .Net多线程总结
  • .NET开发不可不知、不可不用的辅助类(一)
  • [\u4e00-\u9fa5] //匹配中文字符
  • [2010-8-30]
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [android] 手机卫士黑名单功能(ListView优化)
  • [Android]通过PhoneLookup读取所有电话号码
  • [Asp.net MVC]Bundle合并,压缩js、css文件