2020.4.11——単語の引継ぎ(再帰的に遡り、細部に注意)


知識点:
  • 再帰遡及
  • 詳細問題
  • コードは次のとおりです.
    package     ;
    
    import java.util.Scanner;
    
    public class      {
    	static int n,max=0;
    	static String[] a;
    	static int[] a_ok;//         
    	static StringBuffer sb=new StringBuffer();
    	public static void main(String args[])
    	{
    		Scanner sc=new Scanner(System.in);
    		n=sc.nextInt();
    		String m;
    		char c;
    		a=new String[n];
    		a_ok=new int[n];
    		String[][] b=new String[n][n];//            ,           ,      null;
    		for(int i=0;i0&&b[col][i]!=null)//                   
    			{
    				--a_ok[i];
    				sb.append(s);
    				count++;
    				f(b,i);//       
    				++a_ok[i];//  
    				sb.delete(l,sb.length());//  
    			}
    		}
    		if(count==0)
    		{
    			if(sb.length()>max)
    			{
    				max=sb.length();
    			}
    			return;
    		}
    		
    	}
    
    	private static String check(String a,String b) {
    			if(a.indexOf(b)!=-1&&a.length()>b.length())//  a        b  (  a=b=eme,      ),    
    			{
    				return null;
    			}
    			int count=a.length()-1;// a        ,               ,    ,           
    			while(count>=0&&a.length()-count<=b.length())//      
    			{
    	
    				if(a.substring(count,a.length()).equals(b.substring(0,a.length()-count)))
    				{
    					return b.substring(a.length()-count);
    				}
    				count--;
    			}
    			return null;
    		}	
    }