আমাদের একটি অ্যারে প্রদান করা হয়েছে, এবং আমাদেরকে প্রদত্ত অ্যারে থেকে অগ্রণী শূন্যগুলি সরিয়ে তারপর অ্যারেটি প্রিন্ট করার দায়িত্ব দেওয়া হয়েছে৷
Input : arr[] = {0, 0, 0, 1, 2, 3}
Output : 1 2 3
Input : arr[] = {0, 0, 0, 1, 0, 2, 3}
Output : 1 0 2 3 আমরা একটি নতুন অ্যারে তৈরি করতে পারি যাতে প্রদত্ত সমস্যার পূর্ববর্তী অ্যারের অগ্রণী শূন্য থাকে না৷
সমাধান খোঁজার পদ্ধতি
এই পদ্ধতিতে, আমরা অ্যারের মাধ্যমে যাব এবং সমস্ত সংখ্যা সন্নিবেশ করব কিন্তু কোন অগ্রণী শূন্য নেই।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
int arr[] = {0, 0, 0, 1, 2, 0, 4};
int n = sizeof(arr) / sizeof(int); // size of given array.
int last = -1;
for(int i = 0; i < n; i++) { // finding the first non zero element
if(arr[i] != 0) {
last = i;
break;
}
}
if(last == -1)
cout << "Empty\n";
else {
int b[n - last]; // the new array.
for(int i = last; i < n; i++) // inserting the elements in the new array
b[i-last] = arr[i];
for(int i = 0; i < n-last; i++) // printing the array
cout << b[i] << " ";
}
} আউটপুট
1 2 0 4
উপরের কোডের ব্যাখ্যা
প্রদত্ত প্রোগ্রামে, আমরা প্রথমে অ্যারে অ্যারের মাধ্যমে অতিক্রম করছি এবং প্রথম নন-জিরো এলিমেন্টের সূচী খুঁজে পাচ্ছি, যা আমরা চলককে সংরক্ষন করি যাকে আমরা শেষ নামক ভেরিয়েবলে সংরক্ষণ করি যদি ট্রাভার্সালের পরে শেষ হয় -1, যার মানে আমাদের পুরো অ্যারে গঠিত শূন্য, তাই আমরা আমাদের "খালি।"
প্রিন্ট করিএখন, যেহেতু আমরা প্রথম অ-শূন্য উপাদানগুলির সূচী পেয়েছি, আমরা আমাদের নতুন অ্যারের আকার নির্ধারণ করতে পারি, অর্থাৎ (n - শেষ), এবং এখন আমরা একটি লুপ চালাই শেষ থেকে n-এর কম পর্যন্ত। আমরা এই উপাদানগুলিকে নতুন অ্যারেতে সন্নিবেশ করি এবং নতুন অ্যারে প্রিন্ট করি৷
৷উপসংহার
এই নিবন্ধে, আমরা একটি অ্যারে থেকে অগ্রণী শূন্য সরানোর জন্য একটি সমস্যার সমাধান করি। আমরা এই সমস্যার জন্য C++ প্রোগ্রাম এবং আমরা যে সম্পূর্ণ পদ্ধতির সমাধান করেছি তাও শিখেছি। আমরা অন্যান্য ভাষা যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি। আমরা আশা করি আপনার এই নিবন্ধটি সহায়ক হবে৷