zoukankan      html  css  js  c++  java
  • 串的模式匹配算法之一:简单算法

    学习了几天数据结构,一直有种冲动想上机试试,可惜教程是C语言版的,对于我这个对C语言不是很熟悉的初学者就有点困难,于是就用C#模拟:

    using System;
    namespace EasyIndex
    {
        
    class Index
        
    {
            
    static void Main(string[] args)
            
    {
                
    string s="acabaabcaabaabcac";
                
    string m="abaabcac";
                
    int i=0;
                
    int j=0;
                
    while(i<s.Length && j<m.Length)
                
    {
                    
    if(s[i]==m[j])
                    
    {
                        i
    ++;
                        j
    ++;
                    }

                    
    else
                    
    {
                        i
    =i-j+2;//从主串的下一个位置开始重新匹配;
                        j=1;//子串从头开始重新匹配;
                    }

                }

                
    if(j>=m.Length)//说明m是s的一个子串,而且pos是i-m.Lengh+1,因为数组从0开始计数;
                {
                    Console.WriteLine(
    "m与s中第"+Convert.ToString(i-m.Length+1)+"个元素开始的子串相匹配!");
                }

                
    else
                
    {
                    Console.WriteLine(
    "m不是s的子串!");
                }


            }

        }

    }

  • 相关阅读:
    为什么要用泛型呢
    sql语句优化
    SQL Server 2008 问题——已成功与服务器建立连接,但是在登录过程中发生错误。
    CHECKFORILLEGALCROSSTHREADCALLS = FALSE
    数据类型 text 和 varchar 在 add 运算符中不兼容
    js中数组对象去重的方法
    json字符串、json对象、数组之间的转换
    如何用jQuery获得select的值
    SQL Server 性能调优
    TSQL 数据类型转换
  • 原文地址:https://www.cnblogs.com/gmq/p/515577.html
Copyright © 2011-2022 走看看