题解 | #字符串的排列#

字符串的排列

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

import java.util.ArrayList; public class Solution { public ArrayList Permutation(String str) { ArrayList list = new ArrayList<>(); if(str.equals("")) return list; addStr(list, str, "");

//两个for循环是为了去重 for(int i = 0;i < list.size();i++) { for(int j = 0;j < list.size();j++) { if(i != j) if(list.get(j).equals(list.get(i))) list.set(j, ""); } }

	for(int i = 0;i < list.size();i++) {
		if(list.get(i).equals("")) {
			list.remove(i);
			i--;
		}
	}
	
	return list;
}

public void addStr(ArrayList<String> list,String str,String newStr) {
	if(str.length() == 1) {
		list.add(newStr + str);
		return;
	}
	
	char[] cs = str.toCharArray();
	for(int i = 0;i < str.length();i++) {
		addStr(list, tostr(cs,i), newStr + cs[i]);
	}
}

public String tostr(char[] cs,int index) {
	String s = "";
	for(int i = 0;i < cs.length;i++) {
		if(i != index) s += cs[i];
	}
	
	return s;
}

}

全部评论

相关推荐

点赞 评论 收藏
分享
待现的未见之事:起码第一句要把自己的优势说出来吧。比如什么xx本27届学生,随时到岗....
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务