golang练习,消除切片中相邻的相同字符串

package main

import (
	"fmt"
)

func main() {
	var s1 []string = []string{"1","1","3","4","4","4","4","5","5","12","21","4","4","5","5","12","21","4","4","5","5","12","21"}
	s1 = CLearStrings(s1)
	fmt.Println(s1)
}

//消除相邻的相同字符串
func CLearStrings(s []string)[]string{
	for ;CheckSameStrings(s);{
		fmt.Println(CheckSameStrings(s))
		for i,j:=0,1;j<len(s);i,j=i+1,j+1{
			if s[i] == s[j]{
				copy(s[i:],s[j:])
				s = s[:len(s)-1]
			}
			//fmt.Println(s)
		}
	}
	return s
}

//判断一个切片中是否有相邻的两个字符串相同,是的话返回true,不是的话返回false
func CheckSameStrings(s []string)bool{
	var sign bool = false
	for i,j:=0,1;j<len(s);i,j=i+1,j+1{
		if s[i] == s[j]{
			sign = true
			break
		}
	}
	return sign
}

  

posted @ 2020-10-13 21:13  NewBird001  阅读(277)  评论(0)    收藏  举报