Hackerrank - Game of Thrones - I Solution
1 min read

Hackerrank - Game of Thrones - I Solution

Hackerrank - Game of Thrones - I Solution

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

aaabbbb

Sample Output 0

YES

Explanation 0

A palindromic permutation of the given string is bbaaabb.

Sample Input 1

cdefghmnopqrstuvw

Sample Output 1

NO

Explanation 1

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

Sample Input 2

cdcdcdcdeeeef

Sample Output 2

YES

Explanation 2

An example palindrome from the string: ddcceefeeccdd.

Solution in 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

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()))

Enjoying these posts? Subscribe for more


Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

That's okay. But without advertising-income, we can't keep making this site awesome.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add thepoorcoder.com to your ad blocking whitelist or disable your adblocking software.

×