那个求最长上升序列长度的 写了本地过了
还有那个双生字符串,就是求循环字符的匹配 一直卡在数据的格式输入
package zijie;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int n;
        int t;
        
        
        ArrayList<ArrayList<String>> all_str = new ArrayList<ArrayList<String>>();
        
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        t = sc1.nextInt(); 
        for(int i = 0; i < t; i++) {
//            这里想打人
            n = Integer.valueOf(sc1.nextLine());
            ArrayList<String> one_str = new ArrayList<>();
            for(int j = 0; j < n + 1; j++) {
                String str = sc1.nextLine();
                one_str.add(str);
            }
//            sc1.nextLine();
            System.out.println(one_str);
            all_str.add(one_str);
        }
        sc1.close();
        
        for(int i = 0; i < t; i++) {
            ArrayList<String> ar_str = new ArrayList<>();
            System.out.println(ar_str);
            if(judge(ar_str) == true) {
                System.out.println("Yeah");
            }else {
                System.out.println("Sad");
            }
        }
    }

    private static boolean judge(ArrayList<String> ar_str) {
        int n = ar_str.size();
        
        for(int i = 0; i < n; i++) {
            for(int j = i; j < n; j++) {
                return to_judge(ar_str.get(i), ar_str.get(j));
            }
        }
        return false;
    }

    private static boolean to_judge(String string, String string2) {
        String add_str = string + string;
        
        System.out.println(add_str );
        if(add_str.indexOf(string2) != -1) {
            return true;
        }
        
        StringBuffer str_re = new StringBuffer(add_str).reverse();
        if(str_re.indexOf(string2) == -1) {
            return false;
        }else {
            return true;
        }
    }
}
/*
 * 
 * 
3
2
helloworld
hdlrowolle
2
helloworld
worldhello
2
abcde
acbde
*/