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

सी/सी++ में वैकल्पिक स्वर और व्यंजन स्ट्रिंग?

एक स्ट्रिंग दी गई है, स्ट्रिंग में वर्णों को इस तरह पुनर्व्यवस्थित करें कि स्वर और व्यंजन वैकल्पिक स्थिति पर कब्जा कर लें। यदि उपरोक्त तरीके से स्ट्रिंग को पुनर्व्यवस्थित नहीं किया जा सकता है, तो "संभव नहीं" प्रिंट करें।

एक दूसरे के सापेक्ष स्वरों का क्रम और एक दूसरे के सापेक्ष व्यंजनों का क्रम बना रहना चाहिए।

Input: abce
Output: abec

स्पष्टीकरण

  • स्ट्रिंग में स्वरों और व्यंजनों की संख्या ज्ञात कीजिए।

  • यदि संख्या के बीच का अंतर। स्वर और व्यंजन की संख्या एक से अधिक हैं, "संभव नहीं" लौटाएं।

  • यदि कोई शर्त है कि व्यंजन की तुलना में अधिक स्वर मौजूद हैं, तो पहले स्वर को पहले प्रिंट करें और शेष स्ट्रिंग के लिए पुनरावृत्ति करें।

  • यदि कोई शर्त है कि स्वरों की तुलना में अधिक व्यंजन मौजूद हैं, तो पहले व्यंजन को पहले प्रिंट करें और शेष स्ट्रिंग के लिए पुनरावृत्ति करें।

  • अगर नहीं। स्वर और व्यंजन समान हैं, पहले स्वर की तुलना पहले व्यंजन से करें और छोटे वाले को पहले प्रिंट करें

उदाहरण

#include <iostream>
using namespace std;
bool isVowel(char ch) {
   if (ch == 'a' || ch == 'e' || ch == 'i' ||
      ch == 'o' || ch =='u')
   return true;
   return false;
}
string createAltStr(string str1, string str2,
int start, int l) {
   string finalStr = "";
   for (int i=0, j=start; j<l; i++, j++)
      finalStr = (finalStr + str1.at(i)) + str2.at(j);
   return finalStr;
}
string findAltStr(string str) {
   int nv = 0, nc = 0;
   string vstr = "", cstr = "";
   int l = str.size();
   for (int i=0; i<l; i++) {
      char ch = str.at(i);
      if (isVowel(ch)) {
         nv++;
         vstr = vstr + ch;
      } else {
         nc++;
         cstr = cstr + ch;
      }
   }
   if (abs(nv-nc) >= 2)
      return "no such string";
   if (nv > nc)
      return (vstr.at(0) + createAltStr(cstr, vstr, 1, nv));
   if (nc > nv)
      return (cstr.at(0) + createAltStr(vstr, cstr, 1, nc));
   if (cstr.at(0) < vstr.at(0))
      return createAltStr(cstr, vstr, 0, nv);
   return createAltStr(vstr, cstr, 0, nc);
}
int main() {
   string str = "abde";
   cout << findAltStr(str);
   return 0;
}

  1. स्ट्रिंग के सभी अनुक्रमों को प्रिंट करें जो स्वर से शुरू होते हैं और C++ में व्यंजन के साथ समाप्त होते हैं

    इस समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें दिए गए स्ट्रिंग से सबस्ट्रिंग को ढूंढना होता है। पाया जाने वाला विकल्प स्वर से शुरू होना चाहिए और निरंतर वर्ण के साथ समाप्त होना चाहिए। एक स्ट्रिंग वर्णों की एक सरणी है। इस समस्या में उत्पन्न होने वाला सबस्ट्रिंग स्ट्रिंग के कुछ वर्णों को हटाकर उ

  1. सी/सी++ में strncmp() और strcmp() के बीच अंतर

    strncmp() फ़ंक्शन strncmp() का उपयोग बाएं स्ट्रिंग की तुलना दाएं स्ट्रिंग से किसी संख्या तक करने के लिए किया जाता है। यह strcmp() के समान काम करता है। यह शून्य से अधिक मान देता है जब बाएं स्ट्रिंग के मिलान वर्ण में दाएं स्ट्रिंग के वर्ण से अधिक ASCII मान होता है। जब बाईं स्ट्रिंग के मिलान वर्ण का A

  1. सी/सी++ में एक स्ट्रिंग को उलट दें

    सी भाषा में एक स्ट्रिंग को उलटने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<stdio.h> #include<string.h> int main() {    char s[50], t;    int i = 0, j = 0;    printf("\nEnter the string to reverse :");    gets(s);