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

C/C++ में स्वरों और व्यंजनों को बारी-बारी से व्यवस्थित करें

दिए गए इनपुट स्ट्रिंग में स्वर और व्यंजन हैं। स्ट्रिंग को इस तरह पुनर्व्यवस्थित करें कि स्वर और व्यंजन अंतिम स्ट्रिंग में वैकल्पिक स्थानों पर हों।

शर्तें:

  • स्वरों और व्यंजनों की संख्या समान हो (जैसे "individual": 5 स्वर, 5 व्यंजन)।
  • यदि स्वर अधिक हैं, तो अंतर 1 होना चाहिए (जैसे "noe": 2 स्वर, 1 व्यंजन)।
  • यदि व्यंजन अधिक हैं, तो अंतर 1 होना चाहिए (जैसे "objective": 4 स्वर, 5 व्यंजन)।

एल्गोरिदम

  1. स्वरों की संख्या गिनें।
  2. व्यंजनों की संख्या गिनें।
  3. यदि अंतर 1 से अधिक है तो त्रुटि लौटाएं।
  4. इनपुट स्ट्रिंग को दो भागों में विभाजित करें: केवल स्वर और केवल व्यंजन।
  5. यदि संख्या समान है, तो प्रत्येक स्ट्रिंग से बारी-बारी से कैरेक्टर लेकर अंतिम स्ट्रिंग बनाएं।
  6. यदि स्वर अधिक हैं, तो पहले अतिरिक्त स्वर जोड़ें, फिर बारी-बारी से।
  7. यदि व्यंजन अधिक हैं, तो पहले अतिरिक्त व्यंजन जोड़ें, फिर बारी-बारी से।

C++ कोड उदाहरण

#include <iostream>
#include <string>
using namespace std;

bool is_vowel(char ch) {
    return (ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u');
}

string create_final_string(string &s1, string &s2, int start, int end) {
    string final_string;
    for(int i=0, j=start; j= 2) {
        cerr << "String cannot be formed with alternating vowels and consonants\n";
        exit(1);
    }
    if(consonant_cnt == vowel_cnt)
        return create_final_string(vowel_str, consonant_str, 0, vowel_cnt);
    else if(vowel_cnt > consonant_cnt)
        return vowel_str.at(0) + create_final_string(consonant_str, vowel_str, 1, vowel_cnt);
    else
        return consonant_str.at(0) + create_final_string(vowel_str, consonant_str, 1, consonant_cnt);
}

int main() {
    string s1 = "individual";
    string s2 = "noe";
    string s3 = "objective";
    cout << "Input: " << s1 << "\nOutput: " << create_alternate_string(s1) << "\n\n";
    cout << "Input: " << s2 << "\nOutput: " << create_alternate_string(s2) << "\n\n";
    cout << "Input: " << s3 << "\nOutput: " << create_alternate_string(s3) << "\n\n";
    return 0;
}

आउटपुट

Input: individual
Output: inidivudal
Input: noe
Output: one
Input: objective
Output: bojecitev
  1. - C++ में लिंक्ड लिस्ट में व्यंजन और स्वर नोड्स को व्यवस्थित करना

    इस तकनीक में, हम स्वरों को कुंजी के रूप में रखने वाले नोड्स को शुरुआत में और व्यंजन को अंत में स्थानांतरित करते हैं। इस मामले में हम क्रम भी बनाए रखते हैं। उदाहरण नीचे दिया गया है -इनपुट: A-M-A-Z-O-N आउटपुट: A-A-O-M-Z-N कोड (जटिलता: O(N), स्थान O(1))उदाहरण#include<iostream> using namespace std

  1. - C/C++ में स्ट्रिंग को रिवर्स करना

    उदाहरण #include <stdio.h> #include <string.h> int main() { char s[50], t; int i = 0, j = 0; printf(\nरिवर्स करने के लिए स्ट्रिंग दर्ज करें: ); gets(s); j = strlen(s) - 1; while (i < j) { t = s[i]; s[i] = s[j]; s[j] = t; i++;

  1. - C# में स्ट्रिंग में स्वरों और व्यंजनों की गिनती

    स्ट्रिंग में स्वरों (vowels) और व्यंजनों (consonants) दोनों की गिनती के लिए हम प्रत्येक कैरेक्टर को जांचते हैं: क्या यह स्वर है? क्या यह अक्षर है लेकिन स्वर नहीं? (व्यंजन)। उदाहरण using System; public class Demo { public static void Main() { string myStr = Jack Sparrow; int vow