Hackerrank - Funny String Solution

# Hackerrank - Funny String Solution

In this challenge, you will determine whether a string is funny or not. To determine whether a string is funny, create a copy of the string in reverse e.g. . Iterating through each string, compare the absolute difference in the ascii values of the characters at positions 0 and 1, 1 and 2 and so on to the end. If the list of absolute differences is the same for both strings, they are funny.

Determine whether a give string is funny. If it is, return Funny, otherwise return Not Funny.

For example, given the string , the ordinal values of the charcters are .  and the ordinals are . The absolute differences of the adjacent elements for both strings are , so the answer is Funny.

Function Description

Complete the funnyString function in the editor below. For each test case, it should return a string, either Funny or Not Funny.

funnyString has the following parameter(s):

• s: a string to test

Input Format

The first line contains an integer , the number of queries.
The next  lines each contain a string, .

Constraints

Output Format

For each string  print whether it is Funny or Not Funny on a new line.

Sample Input

2
acxz
bcxz


Sample Output

Funny
Not Funny


Explanation

You can use  to store the reverse of .

Test Case 0:

,
Corresponding ASCII values of characters of the strings:
and
For both the strings the adjacent difference list is [2, 21, 2] so we print Funny.

Test Case 1:

,
Corresponding ASCII values of characters of the strings:
and
The adjacent difference list for string  is [1, 21, 2] and for string  it is [2, 21, 1]. Since they are not the same we print Not Funny.

### Solution in Python

def funnyString(s):
s = [abs(ord(s[i])-ord(s[i+1])) for i in range(len(s)-1)]
return "Funny" if list(reversed(s))== s else "Not Funny"

for _ in range(int(input())):
print(funnyString(input()))