题解 | #字符串的排列#

字符串的排列

http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7

递归解法:

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param str string字符串 
 * @return string字符串一维数组
*/
func Permutation( str string ) []string {
	// write code here
	l := len(str)
	if l == 1 {
		return []string{str}
	}

	var strings []string
	m := make(map[string]int)
	for i:=0;i<l;i++{
		r := str[i:i+1]

		strs := Permutation(str[0:i]+str[i+1:])

		for _,st := range strs {
			m[r+st]++
		}
	}
	for v := range m {
		strings = append(strings,v)
	}

	return strings
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务