C#之BF算法

<pre name="code" class="csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.IO;
namespace BF
{
    class Program
    {
        static void Main()
        {
            string aim_path = @"F:	est.txt";//目标串所在文件路径  
            StreamReader sr = new StreamReader(aim_path, Encoding.Default);
            string st;
            string aim_str = "";//存储目标串内容  
            while ((st = sr.ReadLine()) != null)
            {
                aim_str += st;     //将文件中的所有行中的字符串连接在一起  
            }
            string mode_path = @"F:	est1.txt"; //模式串所在文件路径  
            string mode_str = "";//存储模式串内容  
            sr = new StreamReader(mode_path, Encoding.Default);
            while ((st = sr.ReadLine()) != null)
            {
                mode_str += st;
            }
            if (aim_str.Length < mode_str.Length)
            {
                Console.WriteLine("模式串长度大于目标串");
                return;
            }
            int aim_cur_position = 0;  //目标串当前位置  
            int mode_cur_position = 0;//模式串当前位置   
            for (; mode_cur_position < mode_str.Length && aim_cur_position < aim_str.Length; aim_cur_position++)
            {
                 if (mode_str[mode_cur_position] == aim_str[aim_cur_position])
                 {
                    if (mode_cur_position == mode_str.Length - 1)
                    {
                        Console.WriteLine("在{0}处匹配成功", aim_cur_position - mode_str.Length);
                        break;
                    }
                    mode_cur_position++; 
                    continue;
                 }
                 else
                 {
                     if (aim_cur_position == aim_str.Length - 1)
                     {
                         Console.WriteLine("匹配失败");
                     }
                     else
                     {
                         aim_cur_position -= mode_cur_position;
                         mode_cur_position = 0;
                     }
                 }
             }
        }
    }
}



   

原文地址:https://www.cnblogs.com/zztong/p/6695187.html