কম্পিউটার

প্রদত্ত অ্যারে থেকে প্রথম স্ট্রিং যার বিপরীতটিও C++ এ একই অ্যারেতে উপস্থিত রয়েছে


এই সমস্যায়, আমাদের N আকারের স্ট্রিং str[] এর একটি অ্যারে দেওয়া হয়েছে। আমাদের কাজ হল প্রদত্ত অ্যারে থেকে প্রথম স্ট্রিং খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা যার বিপরীতটি একই অ্যারেতে উপস্থিত রয়েছে .

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

Input: str[] = ["python", "program", "C#", "language", "#C"]
Output: C#

সমাধান পদ্ধতি

সমস্যা সমাধানের একটি উপায় হল স্ট্রিং অ্যারের প্রতিটি উপাদানকে সরাসরি ট্র্যাভার্স করা এবং অবশিষ্ট অ্যারের মধ্যে স্ট্রিংটির সম্মানের জন্য পরীক্ষা করা। স্ট্রিংটি ফেরত দিন যদি বিপরীত পাওয়া যায়। যদি পুরো অ্যারেটি ট্র্যাভার্স করা হয় এবং বিপরীত উপস্থিত সহ কোন স্ট্রিং পাওয়া না যায় তাহলে রিটার্ন -1 .

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include<iostream>
#include<string.h>
using namespace std;
bool checkStringRev(string s1, string s2)
{
   if (s1.length() != s2.length())
      return false;
   int len = s1.length();
   for (int i = 0; i < len; i++)
      if (s1[i] != s2[len - i - 1])
          return false;
   return true;
}
string checkRevStringArr(string strArr[], int n){
   for (int i = 0; i < n - 1; i++)
      for (int j = i + 1; j < n; j++)
         if (checkStringRev(strArr[i], strArr[j]))
             return strArr[i];
   return "-1";
}
int main(){
   string strArr[] = { "python", "program", "C#", "language", "#C" };
   int n = sizeof(strArr)/sizeof(strArr[0]);
   cout<<"The string from the array whose reverse is present in the array is " <<checkRevStringArr(strArr, n);
}

আউটপুট

The string from the array whose reverse is present in the array is C#

আরেকটি পদ্ধতি যা রৈখিক সময়ে অর্থাৎ একক ট্রাভার্সালে সমস্যা সমাধান করতে পারে তা হল হ্যাশম্যাপ ব্যবহার করে . আমরা হ্যাশম্যাপে প্রতিটি শব্দ সংরক্ষণ করব। হ্যাশম্যাপে কোন স্ট্রিং এর বিপরীত উপস্থিত থাকলে হ্যাশম্যাপ থেকে বিপরীত স্ট্রিং আমাদের ফলাফল। এবং যদি পুরো অ্যারেতে এমন কোনো স্ট্রিং না থাকে, তাহলে -1 রিটার্ন করুন।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include<bits/stdc++.h>
using namespace std;
string checkRevStringArr(string strArr[], int length){
   map<string,bool> stringHashMap;
   for(int i = 0; i < length; i++) {
      string str = strArr[i];
      reverse(str.begin(),str.end());
      if (stringHashMap.find(str) != stringHashMap.end() and stringHashMap[str])
         return str;
      else
         stringHashMap[strArr[i]] = true;
   }
   return "-1";
}
int main(){
   string strArr[] = { "python", "program", "C#", "language", "#C" };
   int n = sizeof(strArr)/sizeof(strArr[0]);
   cout<<"The string from the array whose reverse is present in the array is "<<checkRevStringArr(strArr, n);
}

আউটপুট

The string from the array whose reverse is present in the array is C#

  1. দুটি প্রদত্ত অ্যারে থেকে সর্বাধিক বিন্যাস C++ এ একই ক্রম বজায় রেখে

  2. C++-এ একই অ্যারেতে K উপাদান যোগ করার পর প্রদত্ত অ্যারের মধ্যমাটি সর্বাধিক করুন

  3. C++ এ পয়েন্টার ব্যবহার করে একটি স্ট্রিং বিপরীত করুন

  4. C++ এ একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন