কম্পিউটার টিউটোরিয়াল

C++ দিয়ে অ্যারেতে প্রথম স্ট্রিং বের করা যার রিভার্সও অ্যারেতে আছে


এই সমস্যাতে, আমাদের একটি স্ট্রিং অ্যারে str[] দেওয়া আছে যার সাইজ N। আমাদের কাজ হল অ্যারেতে প্রথম স্ট্রিং বের করা যার রিভার্সও একই অ্যারেতে আছে।

উদাহরণ দেখি:

ইনপুট: str[] = ["python", "program", "C#", "language", "#C"] আউটপুট: 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. সি++ প্রোগ্রাম: দিয়ে থাকা স্ট্রিং-এ "1(0+)1" প্যাটার্নের সব.matches খুঁজে বের করা