এই সমস্যায়, আমাদের একটি স্ট্রিং দেওয়া হয়েছে। আমাদের কাজ হল স্ট্রিং-এর সমস্ত স্বতন্ত্র অক্ষর স্ট্রিং-এ প্রদর্শিত ক্রম অনুসারে প্রিন্ট করা।
আমাদের সমস্যা বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
Input: tutorials Point Output: uralsPn
এই সমস্যাটি সমাধান করার একাধিক উপায় রয়েছে তবে আমরা সবচেয়ে কার্যকর একটি নিয়ে আলোচনা করব। সহজ একটি লুপ বাসা বাঁধা অন্তর্ভুক্ত.
এর জন্য, আমরা 256 আকারের দুটি অ্যারে ব্যবহার করব (8-বিট অক্ষর সংরক্ষণ করা হয়)।
প্রথমে আমরা কাউন্টার অ্যারের সমস্ত মান 0 এবং ইনডেক্স অ্যারের সমস্ত মান n (স্ট্রিংয়ের দৈর্ঘ্য) শুরু করব। স্ট্রিং স্ট্রিং এর ট্রাভার্সালে এবং প্রতিটি অক্ষরের জন্য c, কাউন্ট [x] বাড়ান, যদি গণনা[x] =1, সূচক[x] =i হয়। গণনা [x] =2 হলে, সূচক[x] =n। সূচী বাছাই এবং অক্ষর মুদ্রণ।
উদাহরণ
আমাদের সমাধানের বাস্তবায়ন দেখানোর কোড,
#include <bits/stdc++.h> using namespace std; const int MAX_CHAR = 256; void printDistinctCharacters(string str) { int n = str.length(); int count[MAX_CHAR]; int index[MAX_CHAR]; for (int i = 0; i < MAX_CHAR; i++) { count[i] = 0; index[i] = n; } for (int i = 0; i < n; i++) { char x=str[i]; ++count[x]; if (count[x] == 1 && x !=' ') index[x] = i; if (count[x] == 2) index[x] = n; } sort(index, index+MAX_CHAR); for (int i=0; i<MAX_CHAR && index[i] != n; i++) cout<<str[index[i]]<<" "; } int main() { string str = "tutorialsPoint"; cout<<"All distinct Characters of the string '"<<str<<"' are :\n"; printDistinctCharacters(str); return 0; }
আউটপুট
All distinct Characters of the string 'tutorialsPoint' are − u r a l s P n