Nos dan una frase. Nuestra tarea es imprimir todas las palabras/strings graciosas en esa oración.
¿Qué es una palabra graciosa?
Invierte la string dada. Repita cada carácter de esa string, compare la diferencia absoluta en los valores ASCII de los caracteres en las posiciones 0 y 1, 1 y 2, 2 y 3 y así sucesivamente hasta el final. Si la lista de diferencias absolutas es la misma para ambas strings, de lo contrario no son divertidas.
Ejemplos:
Input : HKMNPS Output : Yes Let r be the reverse of original string s s = "HKMNPS" r = "SPNMKH" |H-K| = 3 = |S-P| |K-M| = 2 = |P-N| |M-N| = 1 = |N-M| |N-P| = 2 = |M-K| |P-S| = 3 = |K-H| Since each comparison is equal so given string is funny Input : bdwy Output : No
NOTA: Cada string de palíndromo es una string divertida, pero no al revés.
La idea es dividir la string en palabras. Para cada palabra, recorra desde ambos extremos y compare las diferencias entre los caracteres adyacentes.
C++
// C++ program to print all // funny words in a string #include <bits/stdc++.h> using namespace std; bool checkFunny(string word) { int i = 1; int j = word.length() - 2; for (int i = 0; i < word.length(); i++) word[i] = tolower(word[i]); while (i <= j) { if (abs(word[i] - word[i - 1]) != abs(word[j] - word[j + 1])) return false; i++; j--; } return true; } void printFunnyWords(string str) { // to extract last word of sentence str += " "; // to word stores each word of sentence string word = ""; for (int i = 0; i < str.length(); i++) { char ch = str[i]; // extracting each wor if (ch != ' ') word += ch; else { if (checkFunny(word)) cout << word << endl; word = ""; } } } // Driver Code int main() { printFunnyWords("Miss Arora teaches us malayalam bdwy "); return 0; } // This code is contributed by // sanjeev2552
Java
class Funny { static boolean checkFunny(String word) { int i = 1; int j = word.length() - 2; word = word.toLowerCase(); while (i <= j) { if ((Math.abs(word.charAt(i) - word.charAt(i - 1))) != Math.abs((word.charAt(j) - word.charAt(j + 1)))) return false; i++; j--; } return true; } static void printFunnyWords(String str) { // to extract last word of sentence str = str + " "; // to word stores each word of sentence String word = ""; for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); // extracting each word if (ch != ' ') word = word + ch; else { if (Funny.checkFunny(word)) System.out.println(word); word = ""; } } } public static void main(String[] args) { Funny.printFunnyWords("Miss Arora teaches us malayalam bdwy "); } }
Python3
# Python program to print all funny words in a string def checkFunny(word): i = 1 j = len(word) - 2 word = word.lower() while (i <= j): if ((abs(ord(word[i]) - ord(word[i - 1]))) != abs((ord(word[j]) - ord(word[j + 1])))): return False i = i + 1 j = j - 1 return True def printFunnyWords(str): # to extract last word of sentence str = str + " " # to word stores each word of sentence word = "" i = 0 for i in range(len(str)): ch = str[i] # extracting each word if (ch != ' '): word = word + ch else: if (checkFunny(word)): print (word) word = "" # Driver code printFunnyWords("Miss Arora teaches us malayalam bdwy ") # This code is contributed by Prateek Bajaj
C#
// C# program to print funny string using System; class GFG { public static bool checkFunny(string word) { int i = 1; int j = word.Length - 2; word = word.ToLower(); while (i <= j) { if ((Math.Abs(word[i] - word[i - 1])) != Math.Abs((word[j] - word[j + 1]))) { return false; } i++; j--; } return true; } public static void printFunnyWords(string str) { // to extract last word of sentence str = str + " "; // to word stores each word of sentence string word = ""; for (int i = 0; i < str.Length; i++) { char ch = str[i]; // extracting each word if (ch != ' ') { word = word + ch; } else { if (GFG.checkFunny(word)) { Console.WriteLine(word); } word = ""; } } } // Driver Code public static void Main(string[] args) { GFG.printFunnyWords("Miss Arora teaches us " + "malayalam bdwy "); } } // This code is contributed by Shrikant13
Javascript
<script> // Javascript pprogram to print all // funny words in a string function checkFunny(word) { var i = 1; var j = word.length - 2; word= (word.toLowerCase()); while (i <= j) { if (Math.abs(word[i].charCodeAt(0) - word[i - 1].charCodeAt(0)) != Math.abs(word[j].charCodeAt(0) - word[j + 1].charCodeAt(0))) return false; i++; j--; } return true; } function printFunnyWords(str) { // to extract last word of sentence str += " "; // to word stores each word of sentence var word = ""; for (var i = 0; i < str.length; i++) { var ch = str[i]; // extracting each wor if (ch != ' ') word += ch; else { if (checkFunny(word)) document.write( word + "<br>"); word = ""; } } } // Driver Code printFunnyWords("Miss Arora teaches us malayalam bdwy "); </script>
Arora us malayalam bdwy
Publicación traducida automáticamente
Artículo escrito por RishabhMalik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA