赛前十天——打印输入字符串的全排列&&cls(java实现)
package javaPractice;
import java.util.Scanner;
public class Contest13 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] s = sc.next().toCharArray();
arrange(s,0);
sc.close();
}
public static void arrange(char[] s,int n) {
if(n == s.length) {
for(int i=0;i<s.length;i++) {
System.out.print(s[i]+" ");
}
System.out.println();
}
for(int i=n;i<s.length;i++) {
{
char t = s[i];
s[i] = s[n];
s[n] = t;
}
arrange(s,n+1);
{//记得回溯!
char t = s[i];
s[i] = s[n];
s[n] = t;
}
}
}
}
package javaPractice;
//求两个字符串最大公共子序列的长度
public class Contest14 {
public static void main(String[] args) {
System.out.println(f("student","shear"));
}
public static int f(String s1,String s2) {
if(s1.length() == 0||s2.length() == 0) {
return 0;
}
else 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(s1,s2.substring(1)));
}
}
}