全排列
public static void main(String[] args) {
char[] data="ABC".toCharArray();
f(data,0);
}
private static void f(char[] data, int k) {
if (k==data.length){
System.out.print(k+"-->");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i]+" ");
}
System.out.println();
}
for (int i = k; i <data.length ; i++) {
{
char t=data[k];
data[k]=data[i];
data[i]=t;
}
f(data, k+1);
{
char t=data[k];
data[k]=data[i];
data[i]=t;
}
}
}
最大公共子序列
public static void main(String[] args) {
int k=f("skjhdjh","skjkjds");
System.out.println(k);
}
private static int f(String s1, String s2) {
if (s1.length()==0||s2.length()==0) {
return 0;
}
if (s1.charAt(0)==s2.charAt(0)) {
return f(s1.substring(1),s2.substring(1))+1;
}
else {
return Math.max(f(s1.substring(1),s2),f(s2,s1.substring(1)));
}
}