zoukankan      html  css  js  c++  java
  • BoyerMoore(BM)算法--C#

    因项目需要使用字符串查询算法,在网上搜搜了半天,没有找到C#版的。

    索性根据BM机制,用C#实现了一遍。现在贴出了,以备忘记。

     1         /// <summary>
     2         /// BM算法
     3         /// </summary>
     4         /// <param name="source"></param>
     5         /// <param name="subString"></param>
     6         /// <returns></returns>
     7         static int BoyerMooreSearch(string source, string subString)
     8         {
     9             if(string.IsNullOrWhiteSpace(source) || string.IsNullOrWhiteSpace(subString)) 
    10                 return - 1;
    11             int i = 0, j, sLen = subString.Length;
    12             while (i < sLen)
    13             {
    14                 j = 0;
    15                 while (j < sLen && source[i] == subString[j])
    16                 {
    17                     i++;
    18                     j++;
    19                 }
    20                 if (j == sLen)
    21                 {
    22                     return i - sLen;
    23                 }
    24                 i = i - j + 1;
    25             }
    26             return -1;
    27         }
    C#

    使用:

                string source = "我是中和敏式的服务二是到覅维尔维尔34山东富翁234斯蒂芬234234式的服务二";
                string subString = "山东富翁";
    
                int a = BoyerMooreSearch(source, subString);
    
                Console.WriteLine(a);
    


    如大家发现实现有什么问题,欢迎指正。

  • 相关阅读:
    启动WCF多个服务方法
    获取本机内存使用信息、DataTable占用内存空间
    分享到微博代码
    EXCEL拼接SQL
    动态调用webservice及WCF服务
    整洁架构
    端口与适配器架构
    清晰架构
    EBI架构 VS. MVC
    查看Oracle加锁情况及解锁方法
  • 原文地址:https://www.cnblogs.com/rainnight/p/3467371.html
Copyright © 2011-2022 走看看