Skip to content
the poor coder

Hackerrank - Game of Thrones - I Solution

Poor Man
Published
Updated
Reading time
1 min read

Dothraki are planning an attack to usurp King Robert's throne. King Robert learns of this conspiracy from Raven and plans to lock the single door through which the enemy can enter his kingdom.

door

But, to lock the door he needs a key that is an anagram of a palindrome. He starts to go through his box of strings, checking to see if they can be rearranged into a palindrome.

For example, given the string , one way it can be arranged into a palindrome is .

Function Description

Complete the gameOfThrones function below to determine whether a given string can be rearranged into a palindrome. If it is possible, return YES, otherwise return NO.

gameOfThrones has the following parameter(s):

  • s: a string to analyze

Input Format

A single line which contains , the input string.

Constraints

  • |s|
  • contains only lowercase letters in the range

Output Format

A single line which contains YES or NO.

Sample Input 0

Text
aaabbbb

Sample Output 0

Text
YES

Explanation 0

A palindromic permutation of the given string is bbaaabb.

Sample Input 1

Text
cdefghmnopqrstuvw

Sample Output 1

Text
NO

Explanation 1

Palindromes longer than 1 character are made up of pairs of characters. There are none here.

Sample Input 2

Text
cdcdcdcdeeeef

Sample Output 2

Text
YES

Explanation 2

An example palindrome from the string: ddcceefeeccdd.

Solution in Python#

Python
from collections import Counter
def gameOfThrones(s):
    add = 0
    for x in Counter(s).values():
        add+=x%2
    return "NO" if add>1 else "YES"

print(gameOfThrones(input()))

Using list comprehension

Python
from collections import Counter
def gameOfThrones(s):
    return "NO" if sum(x%2 for x in Counter(s).values())>1 else "YES"
print(gameOfThrones(input()))

Keep going

ESC