এই টিউটোরিয়ালে, আমরা একটি স্ট্রিংকে এমনভাবে কনভার্ট করার প্রোগ্রাম নিয়ে আলোচনা করব যাতে সেটি শুধু ডিস্টিংক্ত (অনন্য) ক্যারেক্টার ধারণ করে।
এই জন্য আমাদের একটি স্ট্রিং দেওয়া থাকবে। আমাদের কাজ হলো স্ট্রিংটি ট্রাভার্স করা এবং রিকারিং ক্যারেক্টারগুলোকে যেকোনো র্যান্ডম ক্যারেক্টারের সাথে রিপ্লেস করা যা ইতিমধ্যে স্ট্রিংয়ে নেই।
C++ উদাহরণ
#include<bits/stdc++.h> using namespace std; // স্ট্রিংয়ের ডিস্টিংক্ত ক্যারেক্টার সংগ্রহ করা int calculate_zero(int i, int occurrences[]){ while (i < 26) { // যদি একবারই উপস্থিত থাকে if (occurrences[i] == 0) return i; i++; } // যদি সবগুলো ডাবল বা অধিক হয় return -1; } // মডিফাইড স্ট্রিং প্রিন্ট করা string print_modified(string str) { int n = str.length(); // যদি কনভার্সন সম্ভব না হয় if (n > 26) return "-1"; string ch = str; int i, occurrences[26] = {0}; // ঘটনা গণনা করা for (i = 0; i < n; i++) occurrences[ch[i] - 'a']++; int index = calculate_zero(0, occurrences); for (i = 0; i < n; i++) { // ক্যারেক্টার রিপ্লেস করা if (occurrences[ch[i] - 'a'] > 1) { occurrences[ch[i] - 'a']--; ch[i] = (char)('a' + index); occurrences[index] = 1; // পরবর্তী ক্যারেক্টারে যাওয়া index = calculate_zero(index + 1, occurrences); } } cout << ch << endl; } int main() { string str = "tutorialspoint"; print_modified(str); }আউটপুট
bucdrealspoint