golang:将有序的数字切片转换为数字范围表示的字符串数组

Posted IGuoSJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:将有序的数字切片转换为数字范围表示的字符串数组相关的知识,希望对你有一定的参考价值。

golang:将有序的数字切片转换为数字范围表示的字符串数组

package main

import (
	"fmt"
	"strconv"
)

func numToRange(numList []int) []string 
	if len(numList) == 0 
		return []string
	
	var retList []string
	var start = numList[0]
	var end int
	var listEnd = numList[len(numList)-1]
	for i := 0; i < len(numList)-1; i++ 
		if numList[i+1] > numList[i]+1 
			end = numList[i]
			if start == end 
				retList = append(retList, strconv.Itoa(start))
			 else 
				retList = append(retList, strconv.Itoa(start)+"-"+strconv.Itoa(end))
			
			start = numList[i+1]
		
	
	if start == listEnd 
		retList = append(retList, strconv.Itoa(start))
	 else 
		retList = append(retList, strconv.Itoa(start)+"-"+strconv.Itoa(listEnd))
	
	return retList


func main() 
	numList := []int4, 5, 7, 9, 10, 11, 14
	ret := numToRange(numList)
	fmt.Printf("%v\\n", ret)


运行输出:

[4-5 7 9-11 14]

以上是关于golang:将有序的数字切片转换为数字范围表示的字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

golang 使用Golang从int的数组/切片中找到最小的数字

2022-01-04:一个无序数组长度为n,所有数字都不一样,并且值都在[0...n-1]范围上。 返回让这个无序数组变成有序数组的最小交换次数。 来自小红书。

将一个范围内的数字转换为另一个范围内的数字[重复]

如何将切片字符串中的单个字符转换为 Python 中的整数?

2022-06-04:给定一个数字n,表示一开始有编号1~n的树木,列成一条直线, 给定一个有序数组arr,表示现在哪些树已经没了,arr[i]一定在[1,n]范围, 给定一个数字m,表示你可以补种多

将数字转换为特定范围内的等价物