কম্পিউটার

প্রদত্ত পতাকা ছিনতাই করা হয়েছে কি না তা পরীক্ষা করার জন্য C++ কোড


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

সুতরাং, যদি ইনপুট মত হয়

0 0 0
1 1 1
3 3 3

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

n := row count of matrix
m := column count of matrix
l := 'm'
res := 1
for initialize i := 0, when i < n, update (increase i by 1), do:
   f := matrix[i, 0]
   for initialize j := 0, when j < m, update (increase j by 1),
do:
      if matrix[i, j] is not equal to f, then:
         res := 0
   if l is same as f, then:
      res := 0
   l := f
return (if res is non-zero, then true, otherwise false)

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#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 = 1;
   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 = 0;
      }
      if (l == f)
         res = 0;
      l = f;
   }
   return res ? true : false;
}
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++-এ নয় তা পরীক্ষা করুন

  3. একটি প্রদত্ত অ্যারে C++ এ জোড়া অনুসারে সাজানো হয়েছে কিনা তা পরীক্ষা করুন

  4. একটি প্রদত্ত বাইনারি ট্রি একটি AVL গাছ কিনা তা পরীক্ষা করার জন্য C++ প্রোগ্রাম