समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले और एकमात्र तर्क के रूप में 2-डी बाइनरी सरणी, एआर, (एक सरणी जिसमें केवल 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 ] ]