Рубрики

Распечатать все смешные слова в строку

Нам дано предложение. Наша задача — напечатать все смешные слова / строки в этом предложении.

Что за смешное слово?

Переверните данную строку. Перебирайте каждый символ этой строки, сравнивайте абсолютную разницу в значениях ASCII символов в позициях 0 и 1, 1 и 2, 2 и 3 и так далее до конца. Если список абсолютных различий одинаков для обеих строк, в противном случае они смешные.
Примеры:

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

ПРИМЕЧАНИЕ. Каждая строка палиндрома — это забавная строка, но не наоборот.

Идея состоит в том, чтобы разбить строку на слова. Для каждого слова обойдите его с обоих концов и сравните различия между соседними символами.

C ++

// C ++ pprogram для печати всех
// смешные слова в строке
#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) 

{

      

    // извлечь последнее слово предложения

    str += " ";

  

    // в слове хранится каждое слово предложения

    string word = "";

  

    for (int i = 0; i < str.length(); i++)

    {

        char ch = str[i];

  

        // извлекаем каждый рабочий

        if (ch != ' ')

            word += ch;

        else

        {

            if (checkFunny(word)) 

                cout << word << endl;

            word = "";

        }

    }

}

  
// Код драйвера

int main() 

{

    printFunnyWords("Miss Arora teaches us malayalam bdwy ");

  

    return 0;

}

  
// Этот код предоставлен
// sanjeev2552

Джава

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)

    {

        // извлечь последнее слово предложения

        str = str + " ";

  

        // в слове хранится каждое слово предложения

        String word = "";

  

        for (int i = 0; i < str.length(); i++) {

            char ch = str.charAt(i);

  

            // извлекаем каждое слово

            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 для печати всех забавных слов в строке

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

  

    # извлечь последнее слово в предложении

    str = str + " "

  

    # в слове хранится каждое слово предложения

    word = ""

    i = 0

    for i in range(len(str)):

        ch = str[i]

  

        # извлечение каждого слова

        if (ch != ' '):

            word = word + ch

        else:

            if (checkFunny(word)):

                print (word)

            word = ""

  
# Код драйвера

printFunnyWords("Miss Arora teaches us malayalam bdwy ")

  
# Этот код предоставлен Prateek Bajaj

C #

// C # программа для печати смешной строки

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)

{

    // извлечь последнее слово предложения

    str = str + " ";

  

    // в слове хранится каждое слово предложения

    string word = "";

  

    for (int i = 0; i < str.Length; i++)

    {

        char ch = str[i];

  

        // извлекаем каждое слово

        if (ch != ' ')

        {

            word = word + ch;

        }

        else

        {

            if (GFG.checkFunny(word))

            {

                Console.WriteLine(word);

            }

            word = "";

        }

    }

}

  
// Код драйвера

public static void Main(string[] args)

{

    GFG.printFunnyWords("Miss Arora teaches us "

                               "malayalam bdwy ");

}
}

  
// Этот код предоставлен Shrikant13

Выход:

Arora
us
malayalam
bdwy

Рекомендуемые посты:

Распечатать все смешные слова в строку

0.00 (0%) 0 votes