package main import ( "bufio" "fmt" "io" "os" "strings" "time" ) func main() { // rand.Seed(time.Now().UnixNano()) // b := bst.New() // // for i := 0; i < 100; i++ { // // b.Add(rand.Intn(1000)) // // } // b.Add(10) // b.Add(5) // b.Add(15) // b.Add(6) // b.Add(4) // b.Add(3) // b.Add(8) // b.Add(7) // b.Add(16) // b.Add(14) // b.Add(13) // b.Add(18) // b.Add(17) // b.GetList() // fmt.Println(b.Contains(8)) // fmt.Println(b.Minimum()) // fmt.Println(b.Maxmum()) // b.Remove(8) // b.GetList() // fmt.Println(b.Contains(8)) // filename, _ := filepath.Abs("a.txt") // fmt.Println(filename) // words1 := ReadFile(filename) // fmt.Println(len(words1)) // set1 := bstset.New() // for _, word := range words1 { // set1.Add(word) // } // fmt.Println(set1.GetSize()) // fmt.Println("a Tale of Two Cities") // filename, _ = filepath.Abs("b.txt") // words2 := ReadFile(filename) // fmt.Println(len(words2)) // set2 := bstset.New() // for _, word := range words2 { // set2.Add(word) // } // fmt.Println(set2.GetSize()) // maxheaptest := maxheap.New() // rand.Seed(time.Now().UnixNano()) // for i := 0; i < 1000; i++ { // maxheaptest.Add(rand.Intn(1000000)) // } // n := 0 // m := maxheaptest.GetSize() // for i := 0; i < 1000; i++ { // fmt.Println(maxheaptest.ExtractMax(), maxheaptest.GetSize()) // n++ // } // fmt.Println(n, m) timeTemplate := "2006-01-02" t, _ := time.ParseInLocation(timeTemplate, "2010-01-01", time.Local) fmt.Println(int(t.Weekday()), t.AddDate(0, 1, -1)) } func ReadFile(filename string) []string { var words []string file, err := os.Open(filename) if err != nil { panic(err) } defer file.Close() reader := bufio.NewReader(file) for { line, err := reader.ReadString('\n') if err != nil || io.EOF == err { break } wordSlice := strings.Fields(line) for _, word := range wordSlice { if word = extractStr(strings.ToLower(word)); word != "" { words = append(words, word) } } } return words } func extractStr(str string) string { var res []rune for _, letter := range str { if letter >= 'a' && letter <= 'z' { res = append(res, letter) } } return string(res) }