示例#1
0
func ExampleNextPermutation() {
	arr := []int{1, 2, 3}

	fmt.Println(arr)
	for permutation.NextPermutation(sort.IntSlice(arr)) {
		fmt.Println(arr)
	}
	// Output:
	// [1 2 3]
	// [1 3 2]
	// [2 1 3]
	// [2 3 1]
	// [3 1 2]
	// [3 2 1]
}
示例#2
0
func Example_string() {
	// type runeSlice []rune
	//
	// func (s runeSlice) Less(i, j int) bool {
	//     return s[i] < s[j]
	// }
	//
	// func (s runeSlice) Len() int {
	//     return len(s)
	// }
	//
	// func (s runeSlice) Swap(i, j int) {
	//     s[i], s[j] = s[j], s[i]
	// }

	str := "abcd"
	runeSli := runeSlice(str)

	fmt.Println(string(runeSli))
	for permutation.NextPermutation(runeSli) {
		fmt.Println(string(runeSli))
	}
	// Output:
	// abcd
	// abdc
	// acbd
	// acdb
	// adbc
	// adcb
	// bacd
	// badc
	// bcad
	// bcda
	// bdac
	// bdca
	// cabd
	// cadb
	// cbad
	// cbda
	// cdab
	// cdba
	// dabc
	// dacb
	// dbac
	// dbca
	// dcab
	// dcba
}