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

浙公网安备 33010602011771号