循环改递归
package day17;
public class 循环改递归 {
// 求x的长度
static int f(String x){
if(x.equals("")) return 0;
String x2 = x.substring(1); // 甩掉头
return f(x2) + 1;
}
// 求x是否为镜像串
static boolean h(String x){
if(x.length()<=1) return true;
char head = x.charAt(0);
char tail = x.charAt(x.length()-1);
if(head != tail) return false;
return h(x.substring(1,x.length()-1));
}
//求x的翻转
static String g(String x){
if(x.length()<=1) return x;
char a = x.charAt(0);
String b = x.substring(1);
return g(b) + a;
}
// 比较两个串的大小
static int p(String x, String y){
if(x.length()==0 && y.length()==0) return 0;
if(x.length()==0) return -1;
if(y.length()==0) return 1;
char head_x = x.charAt(0);
char head_y = y.charAt(0);
if(head_x != head_y) return head_x - head_y;
String x1 = x.substring(1);
String y1 = y.substring(1);
return p(x1,y1);
}
public static void main(String[] args){
System.out.println(f("abcd"));
System.out.println(g("abcd"));
System.out.println(h("abcdba"));
System.out.println(p("abc","aakkkk"));
}
}