Connection Status:
Competition Arena > ThePalindrome
SRM 428 · 2008-12-01 · by Vasyl[alphacom] · Dynamic Programming
Class Name: ThePalindrome
Return Type: int
Method Name: find
Arg Types: (string)
Problem Statement

Problem Statement

John and Brus are studying string theory at the university. Brus likes palindromes very much. A palindrome is a word that reads the same forward and backward. John would like to surprise Brus by taking a String s, and appending 0 or more characters to the end of s to obtain a palindrome. He wants that palindrome to be as short as possible. Return the shortest possible length of a palindrome that John can generate.

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • Each character of s will be a lowercase letter ('a' - 'z').
Examples
0)
"abab"
Returns: 5

"ababa" is the shortest palindrome that John can get.

1)
"abacaba"
Returns: 7

Already a palindrome.

2)
"qwerty"
Returns: 11

All characters are different.

3)
"abdfhdyrbdbsdfghjkllkjhgfds"
Returns: 38
4)
"zazazazazazazazazazazazazazazazazazazazazazazazaza"
Returns: 51

Submissions are judged against all 67 archived test cases, of which 5 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class ThePalindrome with a public method int find(string s) · 67 test cases · 2 s / 256 MB per case

Submitting as anonymous