国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了C#,字符串匹配(模式搜索)原生(Native)算法的源代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

算法沒什么可說的,就是一段一段匹配唄。

運行效果:

c#對文件字符串進行關鍵字匹配,C#算法演義 Algorithm Recipes,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文章來源地址http://www.zghlxwxcb.cn/news/detail-790463.html

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;
?? ??? ?}
?? ?}
}

到了這里,關于C#,字符串匹配(模式搜索)原生(Native)算法的源代碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • PTA 7-1 字符串模式匹配(KMP)

    給定一個字符串 text 和一個模式串 pattern,求 pattern 在text 中的出現次數。text 和 pattern 中的字符均為英語大寫字母或小寫字母。text中不同位置出現的pattern 可重疊。 輸入格式: 輸入共兩行,分別是字符串text 和模式串pattern。 輸出格式: 輸出一個整數,表示 pattern 在 text 中的出

    2024年02月06日
    瀏覽(29)
  • 數據結構課設:基于字符串模式匹配算法的病毒感染檢測問題

    數據結構課設:基于字符串模式匹配算法的病毒感染檢測問題

    1.掌握字符串的順序存儲表示方法。 2.掌握字符串模式匹配算法BF算法或KMP算法的實現。 問題描述 醫(yī)學研究者最近發(fā)現了某些新病毒,通過對這些病毒的分析,得知它們的DNA序列都是環(huán)狀的?,F在研究者已收集了大量的病毒DNA和人的DNA數據,想快速檢測出這些人是否感染了

    2023年04月27日
    瀏覽(29)
  • 【字符串匹配】暴力匹配算法

    【字符串匹配】暴力匹配算法

    ? 暴力匹配算法,也稱為樸素字符串匹配算法,是一種簡單但不高效的字符串匹配方法。它的原理非常直觀,其主要思想是逐個字符地比較文本串和模式串,從文本串的每個可能的起始位置開始,依次檢查是否有匹配的子串。以下是暴力匹配算法的詳細原理: 1. 一個字一個

    2024年02月09日
    瀏覽(29)
  • 字符串查找匹配算法

    字符串查找匹配算法

    字符串匹配(查找)是字符串的一種基本操作:給定帶匹配查詢的文本串S和目標子串T,T也叫做模式串。在文本S中找到一個和模式T相符的子字符串,并返回該子字符串在文本中的位置。 Brute Force Algorithm,也叫樸素字符串匹配算法,Naive String Matching Algorithm。 基本思路就是將

    2024年02月14日
    瀏覽(29)
  • python字符串模糊匹配,并計算匹配分數

    python字符串模糊匹配,并計算匹配分數

    thefuzz包以前叫fuzzywuzzy,0.19版本開始改名為thefuzz,github地址: GitHub - seatgeek/thefuzz: Fuzzy String Matching in Python 可以通過命令pip install thefuzz安裝此包。用法還是比較簡單的: 上面兩個字符串的相似度為89%。 我們先看看這個包下面的源碼,來查看thefuzz是怎么實現模糊匹配的。the

    2023年04月23日
    瀏覽(103)
  • 字符串匹配-KMP算法

    字符串匹配-KMP算法

    KMP算法,字符串匹配算法,給定一個主串S,和一個字串T,返回字串T與之S匹配的數組下標。 在學KMP算法之前,對于兩個字符串,主串S,和字串T,我們根據暴力匹配,定義兩個指針,i指向主串S的起始,j指向字串T的起始,依次比較,如果 主串i位置的值等于子串j位置的值,

    2024年02月14日
    瀏覽(28)
  • 字符串匹配算法:KMP

    字符串匹配算法:KMP

    Knuth–Morris–Pratt(KMP)是由三位數學家克努斯、莫里斯、普拉特同時發(fā)現,所有人們用三個人的名字來稱呼這種算法,KMP是一種改進的字符串匹配算法,它的核心是利用匹配失敗后的信息,盡量減少模式串與主串的匹配次數以達到快速匹配的目的。它的時間復雜度是 O(m+n) 字

    2024年02月06日
    瀏覽(25)
  • 【kmp算法】字符串匹配

    kmp算法解決的是字符串匹配的問題,具體來說假定我們要在主串s[ ] 中匹配模式串p[ ],找到匹配到的位置loc; 最自然的想法是暴力寫法 (BF)枚舉主串字符s[ i ] ,和模式串p[ j ]。一個一個匹配,如果匹配失敗,i指針回退回起點,往前進一位,再次進行比較,知道匹配成功。

    2024年02月04日
    瀏覽(31)
  • Python 從字符串開始匹配

    從字符串開始匹配單個字符串 從字符串開始匹配多個字符串,匹配字符串以 元祖 的形式存儲 re.match() 從字符串的開始進行匹配 Try to apply the pattern at the start of the string, returning a Match object, or None if no match was found. 注意: re.match() 的結果是對象,需要 .group() 獲得匹配結果 re.s

    2024年02月13日
    瀏覽(21)
  • 動態(tài)規(guī)劃--通配字符串匹配

    1. 題目來源 鏈接:通配符匹配 來源:LeetCode 2. 題目說明 給定一個字符串 (s) 和一個字符模式 § ,實現一個支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何單個字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 兩個字符串完全匹配才算匹配成功。 說明: s 可能為

    2024年02月14日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包