1 条题解

  • 0
    @ 2025-4-6 10:49:52
    package test;
    
    import java.util.\*;
    
    public class Main{
    

    static int m,n;

    static int[] nn;

    public static void main(String args[]) {

    Scanner scanner = new Scanner(System.in);
    
    int n = scanner.nextInt();
    
    scanner.nextLine();
    
    while (n-- > 0) {
    
    	String string = scanner.nextLine();
    
    	nn = new int[string.length()];
    
    	check(string);
    
    //			for (int i = 0; i < nn.length; i++) {
    
    //				System.out.printf("%d ",nn[i]);
    
    //			}
    
    //			System.out.println();
    

    int len = string.length() - nn[nn.length -1 ];

    System.out.println(string.length() % len == 0 ? string.substring(0,len) : string);
    
    	System.out.println(string.length() % len == 0 ? string.length() / len : 1);
    
    	
    
    	
    
    }
    

    }

    static void check(String s) {

    for (int i = 1; i < s.length(); i++) {
    
    	int j = nn[i - 1];
    
    	
    
    	while (j > 0 && s.charAt(i) != s.charAt(j)) {
    
    		j = nn[ j -1 ];
    
    	}
    
    	
    
    	if (s.charAt(i) == s.charAt(j)) {
    
    		j++;
    
    	}
    
    	nn[i] = j;
    
    }
    

    }

    }
    
    

    信息

    ID
    3
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    (无)
    递交数
    103
    已通过
    5
    上传者