Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में मैट्रिक्स को क्षैतिज रूप से फ्लिप करना और इनवर्ट करना

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो एक 2-D बाइनरी सरणी, arr, (एक सरणी जिसमें केवल 0 या 1 होते हैं), को पहला और एकमात्र तर्क के रूप में लेता है।

हमारे फ़ंक्शन को पहले मैट्रिक्स को क्षैतिज रूप से फ्लिप करना चाहिए, फिर उसे इनवर्ट करना चाहिए, और परिणामी मैट्रिक्स वापस करना चाहिए।

मैट्रिक्स को क्षैतिज रूप से फ्लिप करने का मतलब है कि मैट्रिक्स की प्रत्येक पंक्ति उलटी हो जाती है। उदाहरण के लिए, [1, 1, 0] को क्षैतिज रूप से फ्लिप करने पर [0, 1, 1] प्राप्त होता है।

मैट्रिक्स को इनवर्ट करने का मतलब है कि प्रत्येक 0 को 1 से और प्रत्येक 1 को 0 से बदल दिया जाता है। उदाहरण के लिए, [0, 1, 1] को इनवर्ट करने पर [1, 0, 0] प्राप्त होता है।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है

इनपुट

const arr = [
  [1, 1, 0],
  [1, 0, 1],
  [0, 0, 0]
];

आउटपुट

const output = [
  [1, 0, 0],
  [0, 1, 0],
  [1, 1, 1]
];

आउटपुट व्याख्या

पहले हम प्रत्येक पंक्ति को उल्टा करते हैं -

[[0,1,1],[1,0,1],[0,0,0]]

फिर, हम मैट्रिक्स को इनवर्ट करते हैं -

[[1,0,0],[0,1,0],[1,1,1]]

उदाहरण

const arr = [
  [1, 1, 0],
  [1, 0, 1],
  [0, 0, 0]
];
const flipAndInvert = (arr = []) => {
  const invert = n => (n === 1 ? 0 : 1);
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr[i].length / 2; j++) {
      const index2 = arr[i].length - 1 - j;
      if (j === index2) {
        arr[i][j] = invert(arr[i][j]);
      } else {
        const temp = arr[i][j];
        arr[i][j] = arr[i][index2];
        arr[i][index2] = temp;
        arr[i][j] = invert(arr[i][j]);
        arr[i][index2] = invert(arr[i][index2]);
      }
    }
  }
};
flipAndInvert(arr);
console.log(arr);

आउटपुट

[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 1, 1 ] ]
  1.  new  ऑपरेटर का उपयोग करके जावास्क्रिप्ट कंस्ट्रक्टर बनाना "new" ऑपरेटर का उपयोग करके जावास्क्रिप्ट कंस्ट्रक्टर बनाना

    परिचय जावास्क्रिप्ट में new ऑपरेटर का उपयोग करके एक कंस्ट्रक्टर फ़ंक्शन से ऑब्जेक्ट इंस्टेंस बनाया जाता है। new कीवर्ड एक नया खाली ऑब्जेक्ट बनाता है, इसके प्रोटोटाइप को कंस्ट्रक्टर के prototype से जोड़ता है, this को नए ऑब्जेक्ट पर बाइंड करता है, और कंस्ट्रक्टर को निष्पादित करता है। उदाहरण निम्न को

  1. - जावास्क्रिप्ट में 2-D स्ट्रिंग सरणी को क्रमबद्ध करना और विकर्ण तत्व ढूंढना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो n स्ट्रिंग्स की एक सरणी लेता है। और सरणी में प्रत्येक स्ट्रिंग में ठीक n कैरेक्टर होते हैं। हमारा फ़ंक्शन पहले सरणी को वर्णमाला क्रम में क्रमबद्ध करेगा। और फिर ऊपरी बाएं कोने से शुरू होने वाले मुख्य विकर्ण पर मौजूद कैरेक्टर्स द्वारा बनी स्ट्रिंग लौटाएग

  1. - पायथन में मैट्रिक्स को फ्लिप और इनवर्ट करना

    समस्या विवरण एक बाइनरी मैट्रिक्स mat दिया गया है। हमें मैट्रिक्स की प्रत्येक पंक्ति को चुनना है, फिर उसे रिवर्स करना है। उसके बाद प्रत्येक बिट को फ्लिप करना है (0 को 1 और 1 को 0 में बदलना)। उदाहरण इनपुट मैट्रिक्स: 110 010 001 आउटपुट मैट्रिक्स: 100 101 011 एल्गोरिदम प्रत्येक पंक्ति के लिए