2014-03-27 62 views

回答

20

它感到浪费,为每个角色创建一个字符串,仅仅为Join他们。

这是一个有点浪费,但更多的锅炉板。 playground://XEckr_rpr8

type sortRunes []rune 

func (s sortRunes) Less(i, j int) bool { 
    return s[i] < s[j] 
} 

func (s sortRunes) Swap(i, j int) { 
    s[i], s[j] = s[j], s[i] 
} 

func (s sortRunes) Len() int { 
    return len(s) 
} 

func SortString(s string) string { 
    r := []rune(s) 
    sort.Sort(sortRunes(r)) 
    return string(r) 
} 

func main() { 
    w1 := "bcad" 
    w2 := SortString(w1) 

    fmt.Println(w1) 
    fmt.Println(w2) 
} 
15

您可以将字符串转换为字符串的切片,排序它,将其转换回字符串:

package main 

import (
    "fmt" 
    "sort" 
    "strings" 
) 

func SortString(w string) string { 
    s := strings.Split(w, "") 
    sort.Strings(s) 
    return strings.Join(s, "") 
} 

func main() { 
    w1 := "bcad" 
    w2 := SortString(w1) 

    fmt.Println(w1) 
    fmt.Println(w2) 
} 

此打印:

bcad 
abcd 

试试:http://play.golang.org/p/_6cTBAAZPb

相关问题