Monday, July 24, 2017

'The Minion Game' - From Hacker Rank and Solution using python 2

Problem Statement:

Kevin and Stuart want to play the 'The Minion Game'.
Game Rules
Both players are given the same string, .
Both players have to make substrings using the letters of the string .
Stuart has to make words starting with consonants.
Kevin has to make words starting with vowels.
The game ends when both players have made all possible substrings. 
Scoring
A player gets +1 point for each occurrence of the substring in the string .
For Example:
String  = BANANA
Kevin's vowel beginning word = ANA
Here, ANA occurs twice in BANANA. Hence, Kevin will get 2 Points.

For better understanding, see the image below: 
Your task is to determine the winner of the game and their score.
Input Format
A single line of input containing the string .
Note: The string  will contain only uppercase letters: .
Constraints

Output Format
Print one line: the name of the winner and their score separated by a space.
If the game is a draw, print Draw.
Sample Input
BANANA
Sample Output
Stuart 12
Note : 
Vowels are only defined as . In this problem,  is not considered a vowel.
Solution using python 2:
def minion_game(sUserInputString):
    vowel = ['A','E','I','O','U']
    StuartScore = 0 # Number of Word start with consonant
    KevinScore = 0 # Number of Word start with vowel
    ## For string size of N, at K position we can create N-K word
    ## Find each character of the string as per their index
    for index, char in enumerate(sUserInputString):
        if char in vowel:
            # Then Kevin Score can be calculated by subtracting index of character from length of main string
            KevinScore += len(sUserInputString) - index
        else:
            # Then Score Score can be calculated by subtracting index of character from length of main string
            StuartScore += len(sUserInputString) - index

    if StuartScore > KevinScore :
        # If Stuart score is more than Kevin, Then print Stuart as winner with his total score
        print 'Stuart\t',StuartScore
    elif StuartScore == KevinScore:
        # If Score is leveled between Stuart and Kevin, then print Draw
        print 'Draw'
    else:
        # Print Kevin as winner with his total score
        print 'Kevin\t',KevinScore



No comments:

Post a Comment