Rumah > pembangunan bahagian belakang > C++ > Dalam atur cara C, cetak perkataan palindrom terpanjang dalam ayat

Dalam atur cara C, cetak perkataan palindrom terpanjang dalam ayat

WBOY
Lepaskan: 2023-09-04 22:57:07
ke hadapan
831 orang telah melayarinya

Dalam atur cara C, cetak perkataan palindrom terpanjang dalam ayat

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

什么是回文?

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

示例 - 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
Salin selepas log masuk

示例

#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;
}
Salin selepas log masuk

输出

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

liemadameil
Salin selepas log masuk

Atas ialah kandungan terperinci Dalam atur cara C, cetak perkataan palindrom terpanjang dalam ayat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan