কম্পিউটার টিউটোরিয়াল

C++-এ [l, r] রেঞ্জের বাইরে ASCII মানবाले অক্ষর গণনা ও প্রিন্ট

আমাদের যেকোনো দৈর্ঘ্যের একটি স্ট্রিং দেওয়া আছে এবং আমাদের কাজ হল স্ট্রিংতে থাকা সেই অক্ষরগুলির সংখ্যা গণনা ও প্রিন্ট করা যাদের ASCII মান [l, r] রেঞ্জের বাইরে পড়ে।

A-Z অক্ষরের ASCII মান

ABCDEFGHIJKLMNOPQRS
65666768697071727374757677787980818283


TUVWXYZ
84858687888990

a-z অক্ষরের ASCII মান

abcdefghijklmnopqrs
979899100101102103104105106107108109110111112113114115


tuvwxyz
116117118119120121122

উদাহরণ

ইনপুট − String str = "point"       First = 111, Last = 117 আউটপুট − রেঞ্জের বাইরের অক্ষর: i, n       গণনা: 2

ব্যাখ্যা − যেহেতু i এবং n [111, 117] রেঞ্জের মধ্যে নয়, এই অক্ষরগুলোর গণনা হবে।

ইনপুট − String str = "ABCZXY"       First = 65, Last = 70 আউটপুট − রেঞ্জের বাইরের অক্ষর: Z, X, Y       গণনা: 3

ব্যাখ্যা − যেহেতু Z, X, Y [65, 70] রেঞ্জের মধ্যে নয়, এই অক্ষরগুলোর গণনা হবে।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • স্ট্রিং, শুরু এবং শেষ মান ইনপুট নিয়ে রেঞ্জ তৈরি করুন এবং str ভেরিয়েবলে সংরক্ষণ করুন
  • length() ফাংশন দিয়ে স্ট্রিং দৈর্ঘ্য গণনা করুন
  • একটি অস্থায়ী ভেরিয়েবল নিন যা অক্ষরগুলির গণনা সংরক্ষণ করবে এবং একটি map তৈরি করুন, যেমন mp
  • i = 0 থেকে i < string length পর্যন্ত লুপ শুরু করুন
  • লুপের ভিতরে চেক করুন !(left <= str[i] && str[i] <= right)
  • যদি সত্য হয় তবে চেক করুন mp[str[i]] != 1 হলে str[i] প্রিন্ট করুন, অন্যথায় mp[str[i]] 1 বৃদ্ধি করুন
  • count ফেরত দিন
  • ফলাফল প্রিন্ট করুন

উদাহরণ কোড

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

// [l, r] রেঞ্জের বাইরে ASCII মান 가진 অক্ষর গণনা
int count_non_char(string str, int left, int right) {
    int count = 0;
    // একটি অক্ষর একবারই প্রিন্ট করার জন্য map ব্যবহার
    unordered_map<char, int> m;
    int len = str.length();
    for (int i = 0; i < len; i++) {
        if (!(left <= str[i] && str[i] <= right)) {
            count++;
            if (m[str[i]] != 1) {
                cout << str[i] << " ";
                m[str[i]]++;
            }
        }
    }
    // গণনা ফেরত দিন
    return count;
}

// main কোড
int main() {
    string str = "tutorialspoint";
    int left = 102, right = 111;
    cout << "Characters and ";
    cout << "\nand count in the given range is: " << count_non_char(str, left, right);
    return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −

Characters and and count in the given range is: t u r a s p 8
  1. C++-এ BST-এ দেওয়া রেঞ্জের কীগুলো প্রিন্ট করুন

  2. সি++ প্রোগ্রাম: sin(x) এবং cos(x) এর মান গণনা করা

  3. C++-এ C দ্বারা বিভাজ্য এবং [A, B] রেঞ্জের বাহিরে ন্যূনতম ধনাত্মক পূর্ণসংখ্যা

  4. C++-এ C দ্বারা বিভাজ্য এবং [A, B] রেঞ্জের মধ্যে সর্বোচ্চ ধনাত্মক পূর্ণসংখ্যা