1、求一个字符串的所有排列
public class PermutationStr {
private static void swap(char[] str,int i,int j){
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
public static void permutation(char[] str,int start){
if(str == null || start < 0){
return;
}
//完成全排列后输出当前排列的字符串
if(start == str.length -1){
System.out.println(str);
}else {
for(int i = start; i < str.length; i++){
//交换start与i所在位置字符
swap(str,start,i);
//固定第一个字符,对剩余的字符串进行全排列
permutation(str,start+1);
//还原start与i所在位置的字符
swap(str,start,i);
}
}
}
public static void permutation(String s){
char[] str = s.toCharArray();
permutation(str,0);
}
public static void main(String[] args) {
String s = "abc";
permutation(s);
}
}
2、判断一个字符串是否包含重复字符