func MaxWordString(testArr []int32) int {
//存储生序串
resultMap := make(map[int32][]int32)
for _, value := range testArr {
//第一个数据加入结果序列
if len(resultMap) == 0 {
curValueArr := make([]int32, 0, 1)
resultMap[value] = append(curValueArr, value)
} else {
//是否是新的字串
isNew := true
for key, numArr := range resultMap {
//如果当前值大于之前的最大值,加入串
if key < value {
//判定当前值是否已经存在,如果存在判定是否是最长的字串
if preNumArr, ok := resultMap[value]; !ok {
delete(resultMap, key)
resultMap[value] = append(numArr, value)
} else {
if len(preNumArr) <= len(numArr) {
resultMap[value] = append(numArr, value)
}
}
isNew = false
}
}
//如果是新串,加入
if isNew {
curValueArr := make([]int32, 0, 1)
resultMap[value] = append(curValueArr, value)
}
}
}
resultNum := 0
for key, valueArr := range resultMap {
fmt.Println(key, " : ", valueArr)
if len(valueArr) > resultNum {
resultNum = len(valueArr)
}
}
return resultNum
}