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

C++-এ কীবোর্ড রো (Keyboard Row)


শব্দের একটি লিস্ট দেওয়া আছে। যেসব শব্দ স্ট্যান্ডার্ড কীবোর্ডের একটি সারি (রো) এর অক্ষর মাত্র ব্যবহার করে টাইপ করা যায়, সেগুলো বের করতে হবে।

উদাহরণ: ["hello","world","mom","dad","try","type","tom"] হলে আউটপুট ["dad","try","type"]।

সমাধানের ধাপসমূহ

  • আউটপুট অ্যারে, oneRow ফ্ল্যাগ, এবং charToRowMap (অক্ষর -> রো নম্বর) সংজ্ঞায়িত করুন।
  • প্রতিটি শব্দের জন্য: প্রথম অক্ষরের রো নম্বর নিন। বাকি অক্ষরগুলো সেই রো-তে আছে কিনা চেক করুন।
  • সব অক্ষর একই রো-তে থাকলে শব্দটি আউটপুটে যোগ করুন।

C++ কোড উদাহরণ

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

void print_vector(vector<auto> v) {
    cout << "[";
    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << ", ";
    }
    cout << "]" << endl;
}

class Solution {
public:
    vector<string> findWords(vector<string>& words) {
        vector<string> output;
        bool oneRow = true;
        unordered_map<char, int> charToRowMap{
            { 'q', 1 }, { 'w', 1 }, { 'e', 1 }, { 'r', 1 }, { 't', 1 }, { 'y', 1 }, { 'u', 1 }, { 'i', 1 }, { 'o', 1 }, { 'p', 1 },
            { 'a', 2 }, { 's', 2 }, { 'd', 2 }, { 'f', 2 }, { 'g', 2 }, { 'h', 2 }, { 'j', 2 }, { 'k', 2 }, { 'l', 2 },
            { 'z', 3 }, { 'x', 3 }, { 'c', 3 }, { 'v', 3 }, { 'b', 3 }, { 'n', 3 }, { 'm', 3 }
        };
        for (auto word : words)
            if (!word.empty()) {
                oneRow = true;
                int row = charToRowMap[tolower(word[0])];
                for (int i = 1; i < word.length(); i++)
                    if (charToRowMap[tolower(word[i])] != row) {
                        oneRow = false;
                        break;
                    }
                if (oneRow)
                    output.push_back(word);
            }
        return output;
    }
};

int main() {
    Solution ob;
    vector<string> v = {"hello","world","mom","dad","try","type","tom"};
    print_vector(ob.findWords(v));
    return 0;
}

ইনপুট

{"hello","world","mom","dad","try","type","tom"}

আউটপুট

[dad, try, type, ]
  1. বাইনারি ট্রিতে এক রো নোড যোগ করা C++-এ

  2. C++-এ Судোকু সলভার (Sudoku Solver)

  3. ট্রির প্রতিটি সারির সর্বোচ্চ মান C++-এ

  4. C++-এ আইডেন্টিফায়ার (Identifiers)