সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ২-ডি বাইনারি অ্যারে arr (যে শুধু ০ বা ১ ধারণ করে) প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি প্রথমে ম্যাট্রিক্সকে হরিজেন্টালি ফ্লিপ করবে, তারপর ইনভার্ট করবে, এবং ফলাফল ম্যাট্রিক্স ফেরত দেবে।
ম্যাট্রিক্সকে হরিজেন্টালি ফ্লিপ করা মানে প্রতিটি রো উল্টে দেওয়া। উদাহরণস্বরূপ, [1, 1, 0] হরিজেন্টালি ফ্লিপ করলে [0, 1, 1] হবে।
ম্যাট্রিক্স ইনভার্ট করা মানে প্রতিটি ০ কে ১ এবং ১ কে ০ করা। উদাহরণস্বরূপ, [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 ] ]