Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

एक मैट्रिक्स में वर्णमाला खोजें जिसमें सी ++ में इसके चारों ओर अधिकतम सितारे हों

मान लीजिए हमारे पास एक मैट्रिक्स एम है। यह सितारों और अक्षरों से भरा है। हमें यह पता लगाना है कि किस अक्षर के चारों ओर सबसे अधिक तारे हैं। तो अगर मैट्रिक्स नीचे जैसा है -

एक मैट्रिक्स में वर्णमाला खोजें जिसमें सी ++ में इसके चारों ओर अधिकतम सितारे हों

यहाँ A और C के चारों ओर 7 तारे हैं। यह अधिकतम है। चूंकि ए शब्दावली की दृष्टि से छोटा है, इसलिए यह आउटपुट होगा।

दृष्टिकोण सरल है, हम पात्रों को गिनेंगे, फिर जब एक वर्ण मिल जाए, तो उसके चारों ओर तारों को गिनें। मूल्य को मानचित्र के अंदर भी स्टोर करें। मानचित्र से जहां आकार अधिकतम है, वह मुद्रित किया जाएगा।

उदाहरण

#include <iostream>
#include<unordered_map>
#define MAX 4
using namespace std;
int checkStarCount(int mat[][MAX], int i, int j, int n) {
   int count = 0;
   int move_row[] = { -1, -1, -1, 0, 0, 1, 1, 1 };
   int move_col[] = { -1, 0, 1, -1, 1, -1, 0, 1 };
   for (int k = 0; k < 8; k++) {
      int x = i + move_row[k];
      int y = j + move_col[k];
      if (x >= 0 && x < n && y >= 0 && y < n && mat[x][y] == '*')
      count++;
   }
   return count;
}
char charWithMaxStar(int mat[][4], int n) {
   unordered_map<char, int> star_count_map;
   for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
         if ((mat[i][j] - 'A') >= 0 && (mat[i][j] - 'A') < 26) {
            int stars = checkStarCount(mat, i, j, n);
            star_count_map[mat[i][j]] = stars;
         }
      }
   }
   int max = -1;
   char result = 'Z' + 1;
   for (auto x : star_count_map) {
      if (x.second > max || (x.second == max && x.first < result)) {
         max = x.second;
         result = x.first;
      }
   }
   return result;
}
int main() {
   int mat[][4] = {
      { 'B', '*', '*', '*' },
      { '*', '*', 'C', '*' },
      { '*', 'A', '*', '*' },
      { '*', '*', '*', 'D' }
   };
   int n = 4;
   cout << charWithMaxStar(mat, n) << " has maximum amount of stars around it";
}

आउटपुट

A has maximum amount of stars around it

  1. सी ++ में मैट्रिक्स में प्रत्येक कॉलम का अधिकतम तत्व खोजें

    मान लें कि हमारे पास एक मैट्रिक्स है, हमारा काम उस मैट्रिक्स के प्रत्येक कॉलम के अधिकतम तत्व को ढूंढना और उन्हें प्रिंट करना है। यह कार्य सरल है। प्रत्येक कॉलम के लिए, अधिकतम रीसेट करें, और अधिकतम तत्व ढूंढें, और इसे प्रिंट करें। आइए बेहतर समझ के लिए कोड देखें। उदाहरण #include<iostream> #defin

  1. सी ++ का उपयोग कर मैट्रिक्स में अधिकतम योग के साथ कॉलम खोजें।

    मान लीजिए कि हमारे पास एम एक्स एन आकार का एक मैट्रिक्स है। हमें कॉलम ढूंढना है, जिसमें अधिकतम योग है। इस कार्यक्रम में हम कुछ मुश्किल दृष्टिकोण का पालन नहीं करेंगे, हम सरणी कॉलम-वार को पार करेंगे, फिर प्रत्येक कॉलम का योग प्राप्त करेंगे, यदि योग अधिकतम है, तो योग और कॉलम इंडेक्स प्रिंट करें। उदाहरण

  1. सी ++ प्रोग्राम एज डिसजॉइंट पथों की अधिकतम संख्या खोजने के लिए

    यह एक C++ प्रोग्राम है जो एज डिसजॉइंट पाथ की अधिकतम संख्या को खोजने के लिए है जिसका अर्थ है सबसे छोटा सबसेट पथ या दो कोने के बीच अधिकतम प्रवाह। एल्गोरिदम: Begin    function bfs() returns true if there is path from source s to sink t in    the residual graph which indicates additi