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

সি++ কোড: দেওয়া পতাকা স্ট্রিপড কিনা যাচাই করুন

মান लीজিয়ে একটি n x m আকারের ম্যাট্রিক্স আছে। প্রতিটি সেলে 0 থেকে 9 পর্যন্ত একটি মান থাকবে। একটি পতাকা স্ট্রিপড হওয়া উচিত: পতাকার প্রতিটি অনুভূমিক সারি একই রঙের বর্গ ধারণ করবে, এবং আশেপাশের অনুভূমিক সারিগুলোর রঙ ভিন্ন হবে। আমাদের দেওয়া ম্যাট্রিক্সটি বৈধ পতাকা কিনা তা যাচাই করতে হবে।

উদাহরণ

ইনপুট যদি নিচের টেবিলের মতো হয়:

000
111
333

তবে এটি একটি বৈধ পতাকা, কারণ প্রতিটি সারির সব উপাদান একই এবং পরপর দুটি সারির মান ভিন্ন।

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

n := ম্যাট্রিক্সের সারির সংখ্যা
m := ম্যাট্রিক্সের কলামের সংখ্যা
l := 'm'
res := 1
for i := 0 to n-1:
    f := matrix[i][0]
    for j := 0 to m-1:
        if matrix[i][j] != f:
            res := 0
    if l == f:
        res := 0
    l := f
return (res != 0)

সি++ কোড উদাহরণ

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

bool solve(vector<vector<int>> matrix) {
    int n = matrix.size();
    int m = matrix[0].size();
    char l = 'm';
    bool res = true;
    for (int i = 0; i < n; i++) {
        char f = matrix[i][0];
        for (int j = 0; j < m; j++) {
            if (matrix[i][j] != f)
                res = false;
        }
        if (l == f)
            res = false;
        l = f;
    }
    return res;
}

int main() {
    vector<vector<int>> matrix = { {0, 0, 0}, {1, 1, 1}, {3, 3, 3} };
    cout << solve(matrix) << endl;
}

ইনপুট

{ { 0, 0, 0 }, { 1, 1, 1 }, { 3, 3, 3 } }

আউটপুট

1
  1. C++-এ একটি ট্রি গ্রাফ লিনিয়ার কিনা তা যাচাই করা

  2. C++-এ একটি ম্যাট্রিক্স স্পার্স (sparse) কিনা তা যাচাই করা

  3. C++-এ একটি অ্যারে পেয়ারওয়াইজ সর্টেড (pairwise sorted) কিনা তা যাচাই করা

  4. C++ প্রোগ্রাম: বাইনারি ট্রি AVL ট্রি কিনা যাচাই