123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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)
- }
|