কম্পিউটার

C++ এ একটি স্ট্রিংয়ের বিপরীত স্বর


একটি স্ট্রিং দেওয়া, কাজ হল প্রদত্ত স্ট্রিংটিতে উপস্থিত সমস্ত স্বরগুলিকে বিপরীত করা। উদাহরণস্বরূপ,

ইনপুট-1

a = “tutor”

আউটপুট

totur

ব্যাখ্যা − স্ট্রিং "টিউটর" উল্টে দিলে আউটপুট "totur" হিসাবে উৎপন্ন হবে।

ইনপুট-2

a = “mathematics”

আউটপুট

mithametacs

ব্যাখ্যা − স্ট্রিং "গণিত" উল্টে দিলে আউটপুট "মিথামেটাক্স" হিসাবে উৎপন্ন হবে।

এই সমস্যা সমাধানের পদ্ধতি

একটি স্ট্রিং দেওয়া, আমাদের এটিতে উপস্থিত সমস্ত স্বরগুলিকে বিপরীত করতে হবে। এই বিশেষ সমস্যাটি সমাধান করার জন্য বেশ কয়েকটি পদ্ধতি রয়েছে তবে আমাদের এটিকে লিনিয়ার টাইমে O(n) এ সমাধান করতে হবে।

এইভাবে, এই সমস্যাটি সমাধান করার জন্য আরও ভাল পদ্ধতি হল টু-পয়েন্টার পদ্ধতি ব্যবহার করা যেখানে আমরা দুটি পয়েন্টার কম এবং উচ্চ নিব যা প্রাথমিকভাবে বামদিকের উপাদান এবং ডানদিকের উপাদানের দিকে নির্দেশ করবে। দুটি নেস্টেড লুপে, আমরা পরীক্ষা করব যে বামদিকের অক্ষরটি একটি স্বরবর্ণ এবং ডানদিকের অক্ষরটি স্বরবর্ণ কিনা তারপর উপাদানটি অদলবদল করে ডান পয়েন্টারটি সরান৷

  • ইনপুট একটি স্ট্রিং নিন।

  • অক্ষরটি একটি স্বরবর্ণ কিনা তা পরীক্ষা করার জন্য একটি বুলিয়ান ফাংশন৷

  • একটি ফাংশন reverseVowel(string &str) ইনপুট হিসাবে একটি স্ট্রিং নেয় এবং স্ট্রিং-এ উপস্থিত স্বরগুলিকে বিপরীত করে।

  • দুটি পয়েন্টার নিম্ন এবং উচ্চ শুরু করুন যা যথাক্রমে '0' এবং শেষ অক্ষর নির্দেশ করে।

  • বাম এবং ডানদিকের অক্ষরগুলি পরীক্ষা করা হচ্ছে যদি সেগুলি স্বরবর্ণ হয় তবে অক্ষরটিকে জায়গায় অদলবদল করুন এবং ডানদিকের পয়েন্টারটি হ্রাস করুন৷

  • স্ট্রিং এর সমস্ত অক্ষর পরিদর্শন না করা পর্যন্ত ধাপগুলি পুনরাবৃত্তি করা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
bool isVowel(char ch) {
   return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U';
}
string reverseVowel(string &s){
   int low = 0;
   int high = s.size() - 1;
   while (low < high) {
      while (low < high && !isVowel(s[low])) {
         low ++;
      }
      while (low < high && !isVowel(s[high])) {
         high --;
      }
      swap(s[low++], s[high--]);
   }
   return s;
}
int main(){
   string a= "tutorialspoint";
   string ans= reverseVowel(a);
   cout<<ans;
   return 0;
}

আউটপুট

উপরের কোডটি চালানোর ফলে আউটপুট তৈরি হবে,

titorailspount

যেহেতু প্রদত্ত স্ট্রিং "টিউটোরিয়ালসপয়েন্ট"-এ স্বরবর্ণ রয়েছে, তাই স্বরগুলি বিপরীত করার পরে, এটি "titorailspount" হিসাবে আউটপুট তৈরি করবে৷


  1. C/C++ এ একটি স্ট্রিং বিপরীত করুন

  2. C++ এ একটি স্ট্রিংকে টোকেনাইজ করবেন?

  3. C# এ একটি স্ট্রিং বিপরীত

  4. পাইথনে একটি স্ট্রিং এর বিপরীত স্বর