TopcoderArchive
Archive
Algorithm problem

ReverseSubstring

Problem statement, definition, constraints, and public examples.

Problem Statement

You are given a String input. You are to find the longest substring of input such that the reversal of the substring is also a substring of input. In case of a tie, return the string that occurs earliest in input.

Definition

Class:
ReverseSubstring
Method:
findReversed
Parameters:
String
Returns:
String
Method signature:
String findReversed(String input)
(be sure your method is public)

Notes

  • The substring and its reversal may overlap partially or completely.
  • The entire original string is itself a valid substring (see example 4).

Constraints

  • input will contain between 1 and 50 characters, inclusive.
  • Each character of input will be an uppercase letter ('A'-'Z').

Examples

  1. "XBCDEFYWFEDCBZ"
    Returns: "BCDEF"
    We see that the reverse of BCDEF is FEDCB, which appears later in the string.
  2. "XYZ"
    Returns: "X"
    The best we can do is find a one character substring, so we implement the tie-breaker rule of taking the earliest one first.
  3. "ABCABA"
    Returns: "ABA"
    The string ABA is a palindrome (it's its own reversal), so it meets the criteria.
  4. "FDASJKUREKJFDFASIREYUFDHSAJYIREWQ"
    Returns: "FDF"
  5. "ABCDCBA"
    Returns: "ABCDCBA"
    Here, the entire string is its own reversal.
Back to all problems