Funny String - HackerRank Solution.

NOTE: If you are copying my code then its an advice to you to copy it after downloading it to avoid any kind of compilation error its link is available at the bottom of the source code.



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.

SOURCE CODE



import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

// Complete the funnyString function below.
static String funnyString(String s) {
StringBuffer str=new StringBuffer(s);
str.reverse();
int flag=0;
for(int i=0;i<s.length()-1;i++)
{
int n1=Math.abs(s.charAt(i)-s.charAt(i+1));
int n2=Math.abs(str.charAt(i)-str.charAt(i+1));
if(n1==n2)
{
flag=1;
}
else
{
flag=0;
break;
}
}
if(flag==1)
{
return("Funny");
}
else
{
return("Not Funny");
}
}

private static final Scanner scanner = new Scanner(System.in);

public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

int q = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

for (int qItr = 0; qItr < q; qItr++) {
String s = scanner.nextLine();

String result = funnyString(s);

bufferedWriter.write(result);
bufferedWriter.newLine();
}

bufferedWriter.close();

scanner.close();
}
}



Click here to Download



RESULT




If you have any question then leave a comment below I will do my best to answer that question.

Comments

Popular posts from this blog

[Question 3] ISC 2017 Computer Practical Paper Solved – Caesar Cipher.

Pattern of your own name.

Designing Patterns - Print 'Z'.