zoukankan      html  css  js  c++  java
  • 串的模式匹配算法之二:首尾匹配算法

    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[0])//判断两串的第一个元素是否相等
                    {
                        
    if(s[i+m.Length-1]==m[m.Length-1])//如果头元素相等,再判断尾元素是否相等;
                        {
                            i
    =1;
                            j
    =0;
                            
    while(i<s.Length && j<m.Length)//如果头尾都相等,再从第二个元素到倒数第二个元素判断;
                            {
                                
    if(s[i]==m[j])
                                
    {
                                    i
    ++;
                                    j
    ++;
                                }

                                
    else
                                
    {
                                    i
    =i-j+1;
                                    j
    =0;
                                }

                            }

                        }

                        
    else
                        
    {
                            i
    =i-j+1;
                            j
    =0;
                        }

                    }

                    
    else
                    
    {
                        i
    =i-j+1;
                        j
    =0;
                    }

                  }

                
    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的子串!");
                }


            }

        }

    }

  • 相关阅读:
    error LNK2001: unresolved external symbol "public: __thiscall ControllerInterface::ControllerInterface(class QObject *)" (??0ControllerInterface@@QAE@PAVQObject@@@Z) downloadcontroller.obj
    链接程序的时候遇到问题:fatal error LNK1104: cannot open file 'rctrl-d.lib'
    vs编译报错 BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
    qt 编译unresolved external symbol的错误解决
    程序外框不显示
    Pc移植到Mac的技术细节
    qt中moc的作用
    做回自己,保持作为一个男人的魅力是维持一个维持一段恋爱关系长久的前提
    NLP入门(三)词形还原(Lemmatization)
    NLP入门(二)探究TF-IDF的原理
  • 原文地址:https://www.cnblogs.com/gmq/p/515610.html
Copyright © 2011-2022 走看看