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

C++ में ASCII मानों का योग k से कम और अधिक वाले शब्दों की गिनती


हमें एक स्ट्रिंग str दी गई है जिसमें एक वाक्य है और एक संख्या k। लक्ष्य str में उन शब्दों की संख्या ज्ञात करना है जिनका ASCII मान k से कम है और जिन शब्दों का ASCII मान k से अधिक है।

ASCII - एक भाषा में प्रत्येक वर्ण को सौंपा गया अद्वितीय कोड संख्या।

उदाहरण सहित समझ

इनपुट - str="This is ASCII". k=300

आउटपुट - ASCII मानों का योग k से कम वाले शब्दों की संख्या: 1

ASCII मानों का योग k से अधिक वाले शब्दों की संख्या: 2

व्याख्या - शब्द "is" का ASCII 300 से कम है, अन्य दो अधिक हैं।

इनपुट - str="set set set". k=300

आउटपुट - ASCII मानों का योग k से कम वाले शब्दों की संख्या: 0

ASCII मानों का योग k से अधिक वाले शब्दों की संख्या: 3

व्याख्या - सभी शब्द समान हैं और इनका ASCII 300 से अधिक है।

प्रोग्राम में उपयोग किया गया दृष्टिकोण

हम फॉर लूप का उपयोग करके स्ट्रिंग str को ट्रैवर्स करेंगे। स्पेस के बाद प्रत्येक शब्द के लिए, str[i] को कुल में जोड़ना शुरू करें। यदि यह >k है। काउंट बढ़ाएँ।

  • स्ट्रिंग को str और पूर्णांक को k के रूप में लें।
  • फंक्शन words_less_greater(string str, int k, int length) स्ट्रिंग लेता है और ASCII मान k से कम और अधिक वाले शब्दों की संख्या लौटाता है।
  • temp को 0 लें str में प्रत्येक शब्द के ASCII के लिए।
  • count को 0 लें ASCII मान k से कम वाले शब्दों की संख्या के लिए।
  • total को 0 लें k में कुल शब्दों के लिए।
  • फॉर लूप का उपयोग करके str को ट्रैवर्स करें।
  • स्पेस के बाद प्रत्येक शब्द str[i]==' ' के लिए। इसके वर्ण str[i] को temp में जोड़ें। शब्द के अंत में, जांचें यदि temp < k। यदि हां तो count और total बढ़ाएँ।
  • यदि नहीं तो केवल total बढ़ाएँ।
  • अंत में, count में ASCII मान k से कम वाले शब्दों की संख्या होगी। total - count k से अधिक ASCII वाले शब्द होंगे।
  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

void words_less_greater(string str, int k, int length) {
    int temp = 0;
    int total = 0;
    int count = 0;
    for (int i = 0; i < length; ++i) {
        if (str[i] == ' ') {
            if (temp < k) {
                count++;
            }
            temp = 0;
            total++;
        } else {
            temp += str[i];
        }
    }
    total++;
    if (temp < k) {
        count++;
    }
    cout << "Count of number of words having sum of ASCII values less than k are: " << count;
    cout << "\nCount of number of words having sum of ASCII values greater than k are: " << total - count;
}

int main() {
    string str = "tutorials point";
    int k = 900;
    int length = str.length();
    words_less_greater(str, k, length);
    return 0;
}

आउटपुट

Count of number of words having sum of ASCII values less than k are: 1
Count of number of words having sum of ASCII values greater than k are: 1
  1. C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।

  1. - C++ में [l, r] रेंज में आने वाले ASCII मान वाले वर्णों की गिनती और प्रिंट करें

    हमें किसी भी लंबाई की एक स्ट्रिंग दी गई है और कार्य स्ट्रिंग में उन वर्णों की गिनती करना और प्रिंट करना है जिनका ASCII मान रेंज [l,r] में है। A-Z वर्णों के ASCII मान नीचे दिए गए हैं ABCDEFGHIJKLMNOPQRS 65666768697071727374757677787980818283 TUVWXYZ 84858687888990 a-z वर्णों के

  1. - C++ में साइज K के सब-ऐरे जिनका औसत थ्रेशोल्ड से बड़ा या बराबर है

    मान लीजिए हमारे पास इंटीजर्स का एक ऐरे arr और दो इंटीजर्स k और threshold हैं। हमें साइज k के उन सब-ऐरे की संख्या ढूंढनी है जिनका औसत threshold से बड़ा या बराबर है। उदाहरण के लिए, अगर इनपुट है: [2,2,2,2,5,5,5,8] और k = 3 और threshold = 4, तो आउटपुट 3 होगा। क्योंकि सबऐरे [2,5,5], [5,5,5] और [5,5,8] क