package main
import (
"errors"
"fmt"
"regexp"
"sort"
"strconv"
"strings"
)
func SortStrSliceone(newestslice *[]string)(error){
//
slicelen := len(*newestslice)
if slicelen == 1 {
return nil
}
intpattern := regexp.MustCompile(`\d+`)
var helpmap = make(map[int]string,slicelen)
var tmpintslice = make([]int,0)
for _,eveline := range *newestslice{
reveslice := intpattern.FindAllString(eveline,-1)
evestr := strings.Join(reveslice,"")
eveint,err := strconv.Atoi(evestr)
if err != nil{
return errors.New("版本中存在分整數(shù)信息")
}
fmt.Println(eveint)
tmpintslice=append(tmpintslice,eveint)
_,ok := helpmap[eveint];if !ok{
helpmap[eveint]=eveline
}
}
sort.Ints(tmpintslice)
fmt.Println(tmpintslice)
fmt.Println(helpmap)
return nil
}
func fivearrcompare(arr,brr [5]int)(bool){
var inncomfunc func(int)(bool)
inncomfunc = func(num int)(bool){
if num > 4{
return false
}else if num <= 4{
switch {
case arr[num] > brr[num]:
return true
case arr[num] < brr[num]:
return false
case arr[num] == brr[num]:
return inncomfunc(num + 1)
}
}
return false
}
res := inncomfunc(0)
return res
}
func SortStrSlicetwo(newestslice *[]string)(error){
//
slicelen := len(*newestslice)
if slicelen == 1 {
return nil
}
var arrmap = make(map[[5]int]string)
var needslice = make([][5]int,0)
for _,eveline := range *newestslice{
var tmparr = [5]int{}
eveslice := strings.Split(eveline,"_")
for i:=0;i<len(eveslice);i++{
linestr,_ := strconv.Atoi(eveslice[i])
tmparr[i]=linestr
}
arrmap[tmparr]=eveline
needslice=append(needslice,tmparr)
}
fmt.Println(needslice)
fmt.Println(arrmap)
for i:=0;i<slicelen;i++{
max := i
for j:=i+1;j<slicelen;j++{
if fivearrcompare(needslice[j],needslice[max]){
max=j
}
}
if max != i{
needslice[max],needslice[i]=needslice[i],needslice[max]
}
}
fmt.Println(needslice)
fmt.Printf("max:%s\tmin:%s\n",arrmap[needslice[0]],arrmap[needslice[len(needslice)-1]])
return nil
}
func main(){
needsortslice := []string{"100_1","20_3","22_5","34_1","12_1034","10_1001","1010_01","999_100","901_99","999_101","900_100","102_10","10_210","1_3452","102_10_123_345_123","102"}
SortStrSlicetwo(&needsortslice)
}
go特殊字符串排序
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門蔚润,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尺栖,你說我怎么就攤上這事嫡纠。” “怎么了延赌?”我有些...
- 文/不壞的土叔 我叫張陵除盏,是天一觀的道長。 經(jīng)常有香客問我挫以,道長者蠕,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任屡贺,我火速辦了婚禮蠢棱,結(jié)果婚禮上锌杀,老公的妹妹穿的比我還像新娘甩栈。我一直安慰自己泻仙,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布量没。 她就那樣靜靜地躺著玉转,像睡著了一般。 火紅的嫁衣襯著肌膚如雪殴蹄。 梳的紋絲不亂的頭發(fā)上究抓,一...
- 文/蒼蘭香墨 我猛地睜開眼姨丈,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼畅卓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蟋恬,我...
- 序言:老撾萬榮一對(duì)情侶失蹤翁潘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后歼争,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拜马,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年沐绒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俩莽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站括尸,受9級(jí)特大地震影響巷蚪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜濒翻,卻給世界環(huán)境...
- 文/蒙蒙 一屁柏、第九天 我趴在偏房一處隱蔽的房頂上張望啦膜。 院中可真熱鬧,春花似錦淌喻、人聲如沸僧家。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽八拱。三九已至,卻和暖如春涯塔,著一層夾襖步出監(jiān)牢的瞬間肌稻,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓榛搔,卻偏偏與公主長得像诺凡,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子药薯,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 前言 前段時(shí)間發(fā)表了Go中的HTTP請(qǐng)求之——HTTP1.1請(qǐng)求流程分析童本,所以這兩天本來打算研究HTTP2.0的請(qǐng)...
- 小程序頁面跳轉(zhuǎn)傳數(shù)組與對(duì)象真屯,要用到JSON.stringify()與JSON.parse(); json.st...
- xx= '木材加工及木竹藤棕草制品業(yè)職工人數(shù)(asdf)(人)'others, last = xx.rsplit(...
- searchHistoryArray = [searchStr componentsSeparatedByStri...