go语言圣经 第三章作业

3_10

package main

import (
	"bytes"
	"fmt"
)

func comma(s string) string {
	n := len(s)
	if n <= 3 {
		return s
	}
	var buf bytes.Buffer
	for i := 0; i <= n-1; i++ {
		buf.WriteString(string(s[i]))
		if ((i+1)%3 == 0) && (i != n-1) {
			buf.WriteString(",")
		}
	}
	return buf.String()
}

func main() {
	fmt.Println(comma("abcdefthiljs"))
}

 3_11

//抄的
package main

import (
	"bytes"
	"fmt"
	"strings"
)

func comma(s string) string {
	var buf bytes.Buffer
	var symbol byte

	if s[0] == '+' || s[0] == '-' {
		symbol = s[0]
		s = s[1:]
	}
	buf.WriteByte(symbol)

	arr := strings.SplitN(s, ".", 2)
	s = arr[0]
	l := len(s)

	for i := 0; i < l; i++ {
		buf.WriteString(string(s[i]))
		if (i+1)%3 == l%3 && i != l-1 {
			buf.WriteString(",")
		}
	}

	if len(arr) > 1 {
		buf.WriteString(".")
		buf.WriteString(arr[1])
	}

	return buf.String()
}

func main() {
	fmt.Println(comma("-123123.211"))
}

  3_12

package main

import (
	"fmt"
	"sort"
)

func st(s string) string {
	runeArr := []rune(s)
	sort.Slice(runeArr, func(i, j int) bool {
		return runeArr[i] < runeArr[j]
	})
	s = string(runeArr)
	return s
}

func compare(a, b string) bool {
	a = st(a)
	b = st(b)
	if a == b {
		return true
	} else {
		return false
	}
}

func main() {
	fmt.Println(compare("hello", "sdfs"))
}

  

posted @ 2022-08-08 23:01  r0nGer  阅读(21)  评论(0)    收藏  举报