0

我想知道解决超字符串问题的算法。您可以在https://www.hackerrank.com/challenges/hyper-strings找到描述。

可以通过动态规划解决吗?

任何帮助将不胜感激。

4

1 回答 1

1

公共类超字符串 {

//Abubaker Tagelsir

private static int n,m,sum=1;
private static void temp(String u,String []d)
{
for(int i=0 ; i<d.length;i++)
{
   if((u.length()+d[i].length())<=m)
   {
       sum++;
       temp(u+d[i],d);
   }
}
}

private static int Input3(String [] d)
{
    sum +=d.length;
    for(int i=0;i<d.length;i++){
    for(int j=0;j<d.length;j++)
    {
    if((d[i].length()+d[j].length())<=m)
    {
        sum++;
        temp(d[i]+d[j],d);
    }
    }      
    }
    return sum;
}

public static void main(String[] args) {  
  Scanner sc = new Scanner(System.in);
  String h = sc.nextLine();
  StringTokenizer tz = new StringTokenizer(h);
  String h1 = tz.nextToken();
  n = Integer.parseInt(h1);
  String h2 = tz.nextToken();
  m = Integer.parseInt(h2);
  //Input2();
    String [] d = new String[n];
    for(int i=0;i<n;i++)
  {
      d[i] = sc.nextLine();
  }
  System.out.println(Input3(d));

}

}

于 2013-10-15T18:51:52.327 回答