Skip to content

Files

Latest commit

7c5e5ac · Jun 30, 2024

History

History

strings

子字符串查找

package main

import (
	"fmt"
	"github.com/howz97/algorithm/strings"
	"os"
)

func main() {
	file, err := os.Open("../strings/tale.txt")
	if err != nil {
		panic(err)
	}
	defer file.Close()
	fileStat, err := file.Stat()
	if err != nil {
		panic(err)
	}
	txt := make([]byte, fileStat.Size())
	_, err = file.Read(txt)
	if err != nil {
		panic(err)
	}

	pattern := "It is a far, far better thing that I do, than I have ever done"
	searcher := strings.NewKMP(pattern)
	//searcher := strings.NewBM(pattern)
	i := searcher.Index(string(txt))
	//i := strings.IndexRabinKarp(string(txt), pattern)
	fmt.Println(string(txt[i-50 : i+100]))
}