TopcoderArchive
SRM1 Dec 2008
SRM 428

TheLuckyString

Problem statement, definition, constraints, and public examples.

Problem Statement

John and Brus are studying string theory at the university. According to Brus, a string is called lucky if no two consecutive characters are equal. John is analyzing a String s, and he wants to know how many distinct lucky strings can be generated by reordering the letters in s. If s is a lucky string in its original ordering, it should also be considered in the count.

Definition

Class:
TheLuckyString
Method:
count
Parameters:
String
Returns:
int
Method signature:
int count(String s)
(be sure your method is public)

Constraints

  • s will contain between 1 and 10 characters, inclusive.
  • Each character of s will be a lowercase letter ('a' - 'z').

Examples

  1. "ab"
    Returns: 2
    Two lucky strings - "ab" and "ba".
  2. "aaab"
    Returns: 0
    It's impossible to construct a lucky string.
  3. "aabbbaa"
    Returns: 1
    "abababa" is the only lucky string that can be generated.
  4. "abcdefghij"
    Returns: 3628800
Back to all problems