📜  计算一个句子中的回文词

📅  最后修改于: 2022-05-13 01:57:07.214000             🧑  作者: Mango

计算一个句子中的回文词

给定一个字符串str ,任务是计算字符串str中出现的回文词。
例子:

Input : Madam Arora teaches malayalam
Output : 3
The string contains three palindrome words (i.e.,
Madam, Arora, malayalam) so the count is three.

Input : Nitin speaks malayalam
Output : 2
The string contains two palindrome words (i.e.,
Nitin, malayalam) so the count is two.

countPalin()函数通过提取字符串的每个单词并将其传递给checkPalin()函数来计算回文单词的数量。在原始字符串中添加一个额外的空格以提取最后一个单词。
checkPalin()函数检查单词回文。如果 word 是回文则返回 1,否则返回 0。它确保空字符串不计为回文,因为用户可能在字符串之间或字符串的开头输入多个空格。

C++
/*C++ program to count number of palindrome
words in a sentence*/
#include 
using namespace std;
 
// Function to check if a word is
// palindrome
bool checkPalin(string word)
{
    int n = word.length();
    transform(word.begin(), word.end(), word.begin(), ::tolower);
 
    for (int i = 0; i < n; i++,n--)
    if (word.at(i) != word.at(n - 1))
        return false;    
    return true;
}
 
// Function to count palindrome words
int countPalin(string str)
{        
    // to check last word for palindrome
    str = str + " ";
     
    // to store each word
    string word = "";
    int count = 0;
    for (int i = 0; i < str.length(); i++)
    {
        char ch = str.at(i);
         
        // extracting each word
        if (ch != ' ')
            word = word + ch;
        else {
            if (checkPalin(word))
                count++;
            word = "";
        }
    }
     
    return count;
}
     
// Driver code
int main()
{
     
    cout<


Java
/*Java program to count number of palindrome
words in a sentence*/
class GFG {
     
    // Function to check if a word is
    // palindrome
    static boolean checkPalin(String word)
    {
        int n = word.length();
        word = word.toLowerCase();
        for (int i=0; i


Python3
# Python3 program to count number of
# palindrome words in a sentence
 
# Function to check if a word is palindrome
def checkPalin(word):
    if word.lower() == word.lower()[::-1]:
        return True
 
# Function to count palindrome words
def countPalin(str):
    count = 0
     
    # splitting each word as spaces as
    # delimiter and storing it into a list
    listOfWords = str.split(" ")
 
    # Iterating every element from list
    # and checking if it is a palindrome.
    for elements in listOfWords:
        if (checkPalin(elements)):
             
            # if the word is a palindrome
            # increment the count.
            count += 1
    print (count)
 
# Driver code
countPalin("Madam Arora teaches malayalam")
countPalin("Nitin speaks malayalam")
 
# This code is contributed
# by Ronit Shrivastava.


C#
// C# program to count number of
// palindrome words in a sentence
using System;
 
class GFG
{
 
// Function to check if a word is
// palindrome
public static bool checkPalin(string word)
{
    int n = word.Length;
    word = word.ToLower();
    for (int i = 0; i < n; i++,n--)
    {
    if (word[i] != word[n - 1])
    {
        return false;
    }
    }
    return true;
}
 
// Function to count palindrome words
public static int countPalin(string str)
{
    // to check last word for palindrome
    str = str + " ";
 
    // to store each word
    string word = "";
    int count = 0;
    for (int i = 0; i < str.Length; i++)
    {
        char ch = str[i];
 
        // extracting each word
        if (ch != ' ')
        {
            word = word + ch;
        }
        else
        {
            if (checkPalin(word))
            {
                count++;
            }
            word = "";
        }
    }
 
    return count;
}
 
// Driver code
public static void Main(string[] args)
{
    Console.WriteLine(countPalin("Madam " +
               "Arora teaches malayalam"));
 
    Console.WriteLine(countPalin("Nitin " +
                      "speaks malayalam"));
}
}
 
// This code is contributed by Shrikant13


Javascript


输出:
3
2

https://youtu.be/z

-5HChTA0ME