Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: वाक्य में सबसे लंबा पालिंड्रोम शब्द प्रिंट करें

एक वाक्य दिया गया है और चुनौती है दिए गए वाक्य से सबसे लंबा पालिंड्रोम ढूंढना।

पालिंड्रोम क्या है?

पालिंड्रोम एक शब्द या अनुक्रम है जिसका अर्थ स्ट्रिंग को उलटने के बाद भी समान रहता है।

उदाहरण - नितिन, स्ट्रिंग को उलटने के बाद भी इसका अर्थ समान रहता है।

चुनौती है दिए गए वाक्य से सबसे लंबा पालिंड्रोम ढूंढना।

जैसे वाक्य है: "malayalam liemadameil iji"

इसमें तीन पालिंड्रोम शब्द हैं लेकिन सबसे लंबा है - liemadameil

एल्गोरिदम

शुरुआत
चरण 1 -> i, j, k, l, max को 0, index को -1, check को 0, count को 0 से प्रारंभ करें
चरण 2 -> लूप i = 0 से strlen(str) तक
    max = 0, k = i, j = i+1 सेट करें
    लूप जबकि str[j] != ' ' और str[j] != '\0'
        j को 1 से बढ़ाएं
    लूप समाप्त
    l = j-1 सेट करें
    यदि str[k] != ' ' और str[k] != '\0'
        लूप जबकि k <= l
            यदि str[k] == str[l]
                max को 1 से बढ़ाएं
                यदि count <= max
                    index = i और count = max सेट करें
            अन्यथा
                max = 0, count = -1 सेट करें
                ब्रेक
            k और l को बढ़ाएं/घटाएं
        लूप समाप्त
    i = j सेट करें
लूप समाप्त
चरण 3 -> लूप i = index से जब तक i != -1 और str[i] != ' ' और str[i] != '\0'
    str[i] प्रिंट करें
लूप समाप्त
रुकें

उदाहरण

#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] != ' ' && str[j] != '\0') {
            j++;
        }
        l = j - 1;
        if (str[k] != ' ' && str[k] != '\0') {
            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] != ' ' && str[i] != '\0'; i++) {
        printf("%c", str[i]);
    }
    return 0;
}

आउटपुट

liemadameil
  1. C में न्यूमेरिक पैटर्न प्रिंट करने का प्रोग्राम C में न्यूमेरिक पैटर्न प्रिंट करने का प्रोग्राम

    प्रोग्राम विवरण उपयोगकर्ता से पंक्तियों की संख्या स्वीकार करके न्यूमेरिक पैटर्न प्रिंट करें। इनपुट: 5 पंक्तियाँ 1 6 2 10 7 3 13 11 8 4 15 14 12 9 5 एल्गोरिदम प्रत्येक पंक्ति के अंत से पैटर्न प्रिंट करें प्रत्येक पंक्ति के अंतिम कॉलम को पूरा करें दूसरी पंक्ति के सेकेंड लास्ट कॉलम से शुरू करें उपयोग

  1. C में संख्याओं को कॉलम-वार प्रिंट करने का प्रोग्राम C में संख्याओं को कॉलम-वार प्रिंट करने का प्रोग्राम

    प्रोग्राम विवरण नीचे दिखाए अनुसार प्राकृतिक संख्याओं को कॉलम-वार प्रिंट करें: 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 एल्गोरिदम i पंक्तियों के लिए और j कॉलम के लिए है 5 का अर्थ 5 पंक्तियों और कॉलम के लिए पैटर्न बनाना है प्रत्येक पंक्ति (i) के लिए लूप K को i से आरंभ करें प्रत्येक कॉलम (j) के लिए लूप वर

  1. C में नंबर पैटर्न प्रिंट करने का प्रोग्राम C में नंबर पैटर्न प्रिंट करने का प्रोग्राम

    प्रोग्राम विवरण एक न्यूमेरिकल पैटर्न संख्याओं का एक क्रम है जिसे एक नियम के आधार पर बनाया गया है जिसे पैटर्न नियम कहा जाता है। पैटर्न नियम क्रम में लगातार संख्याओं के बीच संबंध का वर्णन करने के लिए एक या अधिक गणितीय संक्रियाओं का उपयोग कर सकते हैं। पैटर्न 1 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 पैट