Home > Backend Development > C++ > body text

In a C program, print out the longest palindrome word in a sentence

WBOY
Release: 2023-09-04 22:57:07
forward
792 people have browsed it

In a C program, print out the longest palindrome word in a sentence

给定一个句子,挑战是从给定的句子中找到最长的回文

什么是回文?

回文是一个单词或序列,即使在之后其含义仍然保持不变反转字符串

示例 - Nitin,反转字符串后其含义保持不变。

挑战是从给定的句子中找到最长的回文。

喜欢的句子是:malayalam liemadameil iji

它包含三个回文词,但最长的是 - liemadameil

算法

START
STEP 1 -> Declare start variables I, j, k, l, max to 0, index to -1, check to 0, count to 0
Step 2 -> Loop For i to 0 and i<strlen(str) and i++
   Set max =0, k =i and j=i+1
   Loop While str[j]!=&#39; &#39; and str[j]!=&#39;\0&#39;
      Increment j by 1
   End While
   Set l=j-1
   IF str[k]!=&#39; &#39; and str[k]!=&#39;\0&#39;
      Loop While k<=1
      If str[k]==str[l]
         Increment max by 1
         If count<=max
            Set index=i and count = max
         End If
      End IF
      Else
         Set max = 0, count = -1
         Break
      End Else
      Increment k and I by 1
   End Loop While
End If
Set i=j
Step 3 -> End Loop For
Step 4 -> Loop For i = index and i!=-1 && str[i]!=&#39; &#39; && str[i]!=&#39;\0&#39; and i++
   Print str[i]
Step 5 -> End Loop For
STOP
Copy after login

示例

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[]) {
   char str[] = {"malayalam liemadameil iji"};
   int i, k, l, j, max =0, index = -1, check = 0, count = 0;
   for(i=0; i<strlen(str); i++) {
      max = 0;
      k = i;
      j = i+1;
      while(str[j]!=&#39; &#39; && str[j]!=&#39;\0&#39;){
         j++;
      }
      l = j-1;
      if(str[k]!=&#39; &#39; && str[k]!=&#39;\0&#39;) {
         while(k<=l) {
            if (str[k]==str[l]) {
               max++;
               if(count<=max) {
                  index = i;
                  count = max;
               }
            } else {
               max = 0;
               count = -1;
               break;
            }
            k++;
            l--;
         }
      }
      i = j;
   }
   for (i = index; i!=-1 && str[i]!=&#39; &#39; && str[i]!=&#39;\0&#39;; i++) {
      printf("%c", str[i]);
   }
   return 0;
}
Copy after login

输出

如果我们运行上面的程序,它将生成以下输出。

liemadameil
Copy after login

The above is the detailed content of In a C program, print out the longest palindrome word in a sentence. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template