Connection Status:
Competition Arena > NiceOrUgly
SRM 327 · 2006-11-22 · by Petr · Dynamic Programming
Class Name: NiceOrUgly
Return Type: String
Method Name: describe
Arg Types: (string)
Problem Statement

Problem Statement

A string is called ugly if it has 3 vowels in a row, or 5 consonants in a row, or both. A string is called nice if it is not ugly. You are given a string s, consisting of uppercase letters ('A'-'Z') and question marks ('?'). Return "UGLY" if the string is definitely ugly (that means you cannot substitute letters for question marks so that the string becomes nice), "NICE" if the string is definitely nice, and "42" if it can be either ugly or nice (quotes for clarity only).

Notes

  • The letters 'A', 'E', 'I', 'O', 'U' are vowels, and all others are consonants.

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • Each character in s will be either '?', or an uppercase letter ('A'-'Z').
Examples
0)
"HELLOWORLD"
Returns: "NICE"
1)
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Returns: "UGLY"

Apparently the English alphabet has 5 consonants in a row.

2)
"HELLOW?RLD"
Returns: "42"

"HELLOWORLD" is nice, "HELLOWZRLD" is ugly.

3)
"H??LOWOR??"
Returns: "NICE"

You just can't make it ugly.

4)
"EE?FFFF"
Returns: "UGLY"

Whatever you put there, it becomes ugly.

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

Coding Area

Language: C++17 · define a public class NiceOrUgly with a public method string describe(string s) · 208 test cases · 2 s / 256 MB per case

Submitting as anonymous