TopcoderArchive
SRM16 Aug 2008
SRM 414

StringInterspersal

Problem statement, definition, constraints, and public examples.

Problem Statement

A String S is an interspersal of a set of Strings W, if W is a set of disjoint subsequences of S which cover S. Less formally, S can be formed from W by partitioning each member of W into substrings, then concatenating all the substrings, while maintaining the order of the substrings within each element of W. For example, if W contains the strings {"DESIGN", "ALGORITHM", "MARATHON"}, then one possible interspersal would be "ADELGMAORARISIGNTHMTHON", formed as shown below.


 DE         SIGN
A  LG  O  RI    THM
     MA RA         THON
-----------------------
ADELGMAORARISIGNTHMTHON

Given a String[] W, return the lexicographically minimum interspersal of the Strings in W

Definition

Class:
StringInterspersal
Method:
minimum
Parameters:
String[]
Returns:
String
Method signature:
String minimum(String[] W)
(be sure your method is public)

Notes

  • The lexicographically minimum of two Strings is the one with the alphabetically earlier character at the first position at which they differ.
  • The return String will contain no more than 1000 characters.

Constraints

  • W will contain between 1 and 20 elements, inclusive.
  • Each element of W will contain between 1 and 50 uppercase letters ('A'-'Z'), inclusive.

Examples

  1. {"DESIGN","ALGORITHM","MARATHON"}
    Returns: "ADELGMAORARISIGNTHMTHON"
    The example from the problem statement.
  2. {"TOMEK","PETR","ACRUSH","BURUNDUK","KRIJGERTJE"}
    Returns: "ABCKPERIJGERRTJETOMEKTRURUNDUKUSH"
  3. {"CCCA","CCCB","CCCD","CCCE"}
    Returns: "CCCACCCBCCCCCCDE"
  4. {"BKSDSOPTDD","DDODEVNKL","XX","PODEEE","LQQWRT"}
    Returns: "BDDKLODEPODEEEQQSDSOPTDDVNKLWRTXX"
  5. {"TOPCODER","BETFAIR","NSA","BT","LILLY"}
    Returns: "BBELILLNSATFAIRTOPCODERTY"
  6. {"QITHSQARQV","BYLHVGMLRY","LKMAQTJEAM","AQYICVNIKK","HKGZZFFEWC"}
    Returns: "ABHKGLKMAQIQQTHSQARQTJEAMVYICVNIKKYLHVGMLRYZZFFEWC"
  7. {"XHCYBTUQUW","EKBISADSSN","LOOISPOFAK","MIXBDHPJUQ","BNMNDHMOTC"}
    Returns: "BEKBILMINMNDHMOOIOSADSPOFAKSSNTCXBDHPJUQXHCYBTUQUW"
Back to all problems