Problem Statement
A Dyck word is a string consisting of n X's and n Y's (for some positive integer n) such that no initial segment of the string has more Y's than X's.
If we have a Dyck word we can swap any two consecutive substrings when both of them are Dyck words. It is easy to show that the result of this swap operation is a Dyck word too. For example, in "XXYXXYYY" (quotes for clarity) we can swap the substrings "XY" and "XXYY" to get "XXXYYXYY".
If a Dyck word A can be obtained from a Dyck word B using some number of the described swap operations they are called equivalent.
You will be given a
Definition
- Class:
- DyckwordUniformer
- Method:
- uniform
- Parameters:
- String
- Returns:
- String
- Method signature:
- String uniform(String dyckword)
- (be sure your method is public)
Constraints
- dyckword will contain between 2 and 50 characters, inclusive.
- Each character in dyckword will be either 'X' or 'Y'.
Examples
"XXYXXYYY"
Returns: "XXXYYXYY"
The example from the problem statement.
"XYXYXXXYYYXXYY"
Returns: "XXXYYYXXYYXYXY"
The result can be obtained by four swaps "XYXYXXXYYYXXYY" -> "XYXXXYYYXYXXYY" -> "XXXYYYXYXYXXYY" -> "XXXYYYXYXXYYXY" -> "XXXYYYXXYYXYXY".
"XXXYYYXXYXXXYYYY"
Returns: "XXXXYYYXYYXXXYYY"
The result can be obtained by two swaps "XXXYYYXXYXXXYYYY" -> "XXXYYYXXXXYYYXYY" -> "XXXXYYYXYYXXXYYY".
"XXYYYX"
Returns: ""
"XXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYY"
Returns: "XXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYY"
"XYXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYY"
Returns: "XXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYXY"
"XYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXY"
Returns: "XYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXY"
"XXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYY"
Returns: "XXXYYXXYYXXYYXXYYXXYYXXYYXXYYXXYYXYXYXYXYXYXYXYXYY"
"XXYXXYYYXXYXXYYYXXYXXYYYXXYXXYYYXXYXXYYYXXYXXYYYXY"
Returns: "XXXYYXYYXXXYYXYYXXXYYXYYXXXYYXYYXXXYYXYYXXXYYXYYXY"
"XXYXXYYYXXXYYXXXYYYYXXXXYYYXXXXYYYYYXXYXXXXXYYYYYY"
Returns: "XXXXXXYYYYYXYYXXXXXYYYYXXXYYYYXXXXYYYXXYYYXXXYYXYY"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Returns: ""
"YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
Returns: ""
"YX"
Returns: ""
"YYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXX"
Returns: ""
"XXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYY"
Returns: ""
"XXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYY"
Returns: ""
"XXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYX"
Returns: ""
"XXYXYYXXYY"
Returns: "XXYXYYXXYY"
"XYXXYYXYXXYXYYXYXXYYXXXYXYYYXXXYXYYXYXYYXXYY"
Returns: "XXXYXYYXYXYYXXXYXYYYXXYXYYXXYYXXYYXXYYXYXYXY"
"XXYXXYYXYXXYYXXYYY"
Returns: "XXXYYXXYYXXYYXYXYY"
"XXYY"
Returns: "XXYY"
"XY"
Returns: "XY"
"XYXXXYYYXXYXYXXXYXYYYXXYXYXYYXXYYXYXYXXYXYYY"
Returns: "XXXXYXYYYXXYXYXYYXXYXYYXXYYXYXYXYXYYXXXYYYXY"
"XXYXXYYYXXYXYYXYXYXYXXYYXXXYXYXYXYXYYXXYYY"
Returns: "XXXYXYXYXYXYYXXYYYXXXYYXYYXXYXYYXXYYXYXYXY"
"XYXYXYXXYYXYXYXYXYXXYYXYXYXYXXYYXYXYXXYXYYXYXY"
Returns: "XXYXYYXXYYXXYYXXYYXYXYXYXYXYXYXYXYXYXYXYXYXYXY"
"XYXXYXYYXXYXXYYYXYXXYXYYXXYYXYXY"
Returns: "XXXYYXYYXXYXYYXXYXYYXXYYXYXYXYXY"
"XXXXXYXYYXYXXYXYXYYYYXYXYXYXXXYYYXYXYXYXXYYXYY"
Returns: "XXXXXYXYXYYXXYXYYXYYYXXXYYYXXYYXYXYXYXYXYXYXYY"
"XYXYXXYYXXXYXYYY"
Returns: "XXXYXYYYXXYYXYXY"
"XXYYXYXXYXYYXYXYXXYYXXYXXYYXYXXYYYXXYYXYXXYXYY"
Returns: "XXXYYXXYYXYXYYXXYXYYXXYXYYXXYYXXYYXXYYXYXYXYXY"
"XYXXYYXYXY"
Returns: "XXYYXYXYXY"
"XXXXXXYYYXYXXYYXYXYYXXYXYXYXYYXYYYXXYXXYYY"
Returns: "XXXXXXYYYXXYYXYXYXYYXXYXYXYXYYXYYYXXXYYXYY"
"XYXXYXYXYXXYYY"
Returns: "XXXYYXYXYXYYXY"
"XXXYYY"
Returns: "XXXYYY"
"XYXYXYXYXYXYXYXXYXYXXYXYYXYXXYYY"
Returns: "XXXYXYYXXYYXYXYXYYXYXYXYXYXYXYXY"
"XXYYXXYYXYXXXXXXXYYYYYYXYXYXYXXYYY"
Returns: "XXXXXXXYYYYYYXXYYXYXYXYYXXYYXXYYXY"
"XXYYXYXXYXYXYYXYXXYY"
Returns: "XXYXYXYYXXYYXXYYXYXY"
"XXXYXYXYXYXYYXXYYXXYXYXYYY"
Returns: "XXXYXYXYXYXYYXXYXYXYYXXYYY"
"XXYXYXYXXYXYXYYXYYXXXYYYXXYYXYXY"
Returns: "XXXYXYXYYXYXYXYXYYXXXYYYXXYYXYXY"
"XXXXXYYXXYXYXYXYYXYXXYXXYYXYYXYYXYYY"
Returns: "XXXXXXYYXYXYYXXYXYXYXYYXXYYXYXYYXYYY"
"XYXYXYXXXYXYYXXYXXYYYYXYXXYXYXYYXYXY"
Returns: "XXXXYYXYYXXYXYYYXXYXYXYYXYXYXYXYXYXY"
"XXXXYYYXXYYXYXXYXYYXXYXYXYYXYXXYYY"
Returns: "XXXXYYYXXYXYXYYXXYXYYXXYYXXYYXYXYY"
"XYXYXXXYXYYXYYXXYYXYXYXXXYYYXXYXYXYXYXXXYXYYYXYY"
Returns: "XXXXYXYYYXYXYXYXYXYYXXXYXYYXYYXXXYYYXXYYXYXYXYXY"
"XXXXYYYYXXYYXXYXYYXYXYXXYYXYXYXXXXXYYYYXYY"
Returns: "XXXXXYYYYXYYXXXXYYYYXXYXYYXXYYXXYYXYXYXYXY"
"XYXXYYXYXXYYXXYYXYXYXXYXYXYXYXYXXYXXXYYYYY"
Returns: "XXXXXYYYXYYXYXYXYXYXYYXXYYXXYYXXYYXYXYXYXY"
"XXYYXXYYXXYYXXXXYXYXYYYXYXYXYYXYXYXXYYXXYXXYYXYY"
Returns: "XXXXYXYXYYYXYXYXYYXXXYYXYXYYXXYYXXYYXXYYXXYYXYXY"
"XYXXYXXXYYYXYXYYXYXXYYXXXXYYYXXYYXYXYY"
Returns: "XXXXYYYXXYYXYXYYXXXXYYYXYXYXYYXXYYXYXY"
"XYXYXYXXXYYYXYXXXYYXYXYXYXXYXYXYYXXXXYXYYYYY"
Returns: "XXXXXYXYYYYXXYXYXYYXXYYXYXYXYYXXXYYYXYXYXYXY"
"XYXYXXXYYXXYXYXYXYYXYXYYXYXYXYXY"
Returns: "XXXYXYXYXYYXXYYXYXYYXYXYXYXYXYXY"
"XXXXYYYXYYXXYYXXXYXXXXYXYYYYYY"
Returns: "XXXXXXYXYYYYXYYYXXXXYYYXYYXXYY"
"XYXYXYXYXXXYXYXXYYXYXYXXYXYYXYXYYXYY"
Returns: "XXXXYXYYXXYYXYXYXYXYXYXYYXYYXYXYXYXY"
"XYXYXXYXYXXXXYYXYYXYXYXYXYXYXYYXXYYXYXYXYY"
Returns: "XXXXXYYXYYXYXYXYXYXYXYYXXYYXYXYXYXYXYYXYXY"
"XYXXYXYXYXYXYXYXXYYXYXYXYXXYYXXXYYYYXXYXYXYY"
Returns: "XXXXYYYXXYYXXYYXYXYXYXYXYXYXYXYXYYXXYXYXYYXY"
"XXYXXYXYYXYXYYXXYXYXYXYYXYXXXYYYXXYXYXXYXYXYYY"
Returns: "XXXYXYXYYXYXYYXXXYXYYXYXYXYYXXXYYYXXYXYXYXYYXY"
"XXYXXYXYYXYXYXXXYXYXXYYYXYXYXXYYXXYXYXXYYYYY"
Returns: "XXXXXYYXYXYYXXXYYXYXYYXXYYXYXYYXXYXYYXYXYXYY"
"XXYXYXXXYYXYXYYXYXYXXYYXYXXYYXXYYXYXYXYYXXXYYXXYYY"
Returns: "XXXXYYXYXYYXXYYXXYYXXYYXYXYXYXYXYXYXYXYYXXXYYXXYYY"
"XXYYXYXXXYYXXYXXYXYYXXXYYXXYYYYY"
Returns: "XXXXXYYXXYYYXXYXYYXYYXXYYYXXYYXY"
"XYXXYYXYXYXXXXYYYXYXYXXYYXYXYXYY"
Returns: "XXXXYYYXXYYXYXYXYXYXYYXXYYXYXYXY"
"XXYXXYYYXXXXYYYXXXXYYYYYXXXYYXXXYYYYXXYXXXXXYYYYYY"
Returns: "XXXXXXYYYYYXYYXXXXXYYYYXXXYYYYXXXXYYYXXYYYXXXYYXYY"
"XY"
Returns: "XY"
"XXY"
Returns: ""
"XYY"
Returns: ""
"XYXY"
Returns: "XYXY"
"XXXYYYXYXXXXXYYYXXXYXYXXXYYXXYXXXYXYXYXYYYYYYXXYXY"
Returns: ""
"XXXXYY"
Returns: ""
"XYXXXY"
Returns: ""
"XXXXYYYXYYXXXYYYXXXXYYYXYYXXXYYYXXXXYYYXYYXXXYYYXY"
Returns: "XXXXYYYXYYXXXXYYYXYYXXXXYYYXYYXXXYYYXXXYYYXXXYYYXY"
"XXYYXXYYXXXXYYYYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXXYXYY"
Returns: "XXXXYYYYXXYXYYXXYYXXYYXYXYXYXYXYXYXYXYXYXYXYXYXYXY"
"XXXY"
Returns: ""
"XXYXXYY"
Returns: ""
"XXXXYYYXXYXYXYYXXXYYYXXYXXYYYXXYXXYYYYXXYXYXXXYYYY"
Returns: "XXXXYYXYYXXXYYXYYXXXYYYXXXYYYXXYXYXYYYXXXXYYYXYXYY"
"XXXYYYXXYXXXYYYY"
Returns: "XXXXYYYXYYXXXYYY"
"XXXXXXXX"
Returns: ""
"XYXXYYXXXYYYXXYYXXXYYYXXYYXYXYXXYYXXXXYYYYXYXYXXYY"
Returns: "XXXXYYYYXXXYYYXXXYYYXXYYXXYYXXYYXXYYXXYYXYXYXYXYXY"
"XYXXY"
Returns: ""
"XX"
Returns: ""
"XXXYY"
Returns: ""
"YYXX"
Returns: ""
"XYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXYXXYYXY"
Returns: "XXYYXXYYXXYYXXYYXXYYXXYYXXYYXXYYXYXYXYXYXYXYXYXYXY"
"XXXXYYYYXXYYXYXXYXYYXXXXYYYYXXYYXYXXYXYYXXXXYYYYXY"
Returns: "XXXXYYYYXXXXYYYYXXXXYYYYXXYXYYXXYXYYXXYYXXYYXYXYXY"
"XXYX"
Returns: ""
"XYXYXYXYXYXXXXXYYYYYXXXXYYYYXXXYYYXXYYXXYXYYXXYXYY"
Returns: "XXXXXYYYYYXXXXYYYYXXXYYYXXYXYYXXYXYYXXYYXYXYXYXYXY"
"XXXYX"
Returns: ""
"XXXYYYXXYXXXYYYYXYXYXXXYYYXXYYXYXYXXXYYYXXYYXXYY"
Returns: "XXXXYYYXYYXXXYYYXXXYYYXXXYYYXXYYXXYYXXYYXYXYXYXY"
"XXXXYYYY"
Returns: "XXXXYYYY"
"XYXXYYXXYXXYYYXYXYXYXYXYXYXYXYXYXYXXYYXXYYXXXYYY"
Returns: "XXXYYXYYXXXYYYXXYYXXYYXXYYXYXYXYXYXYXYXYXYXYXYXY"
"XYXXYYXXXYYYXXXXYYYYXXXXXYYYYYXXYXYYXXXYYXYYXXYXYY"
Returns: "XXXXXYYYYYXXXXYYYYXXXYYXYYXXXYYYXXYXYYXXYXYYXXYYXY"