हमें एक स्ट्रिंग 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 - countk से अधिक 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