【go语言圣经】课后题(并非所有题都做)--持续更新中...

//3.10
func main(){
	var buf bytes.Buffer
	v:="1234"
	h:=len(v)%3
	fmt.Printf("%d\n",h)
	for i := 0; i <len(v) ; i++{
		if (i+1==h||(i-h)%3==0)&&i!=0{
			buf.WriteString(",")
		}
		fmt.Fprintf(&buf,"%c",v[i])
	}
	fmt.Println(buf.String())
}
//3.12
func main(){
	fmt.Printf("plz input the first string: \n")
	var a []byte
	var b []byte
	fmt.Scanf("%s",&a)
	fmt.Printf("plz input the first string: \n")
	fmt.Scanf("%s",&b)
	n:=len(a)
	m:=len(b)
	count:=0

	for i := 0; i < m; i++ {
		for j := 0; j < n; j++ {
			if a[i]==b[j]{
				b[j]='/'
				break

			}

		}
	}
	for i := 0; i < m; i++ {
		if b[i]=='/'{
			count++
		}
	}

	if count!=m||m!=n{
		fmt.Printf("sorry.not the same.")
	}else{
		fmt.Printf("congra.same.")
	}

}
//4.4 rotate

func rotate(s []int,n int)[]int{
	var m []int
	for i := 0; i < len(s); i++ {
		m=append(m,s[len(s)-i-1])
	}
	return m
}
func main(){
	 s := []int{1, 2, 3, 4, 5}
	 m:=rotate(s,len(s))
	 fmt.Println(m)

}

//4.5 []string临近字符串操作

func de(s []string) []string {


	for i := 0; i < len(s)-1; i++ {
		if s[i]==s[i+1]{
			s[i]="."
		}
	}

	return s
}
func main(){
	s:=[]string{"a","a","b","c","c","c","d","d","e","e","e","e","f","g","h","k","k"}
	m:=de(s)
	var b []string
	for j := 0; j < len(m); j++ {
		if m[j]=="."{
			continue
		}
		b=append(b,m[j])
	}
	fmt.Println(b)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值