একটি স্ট্রিং-এ কোন ক্যারেক্টারগুলো একাধিকবার আছে সেটি বের করার জন্য ক্যারেক্টার ফ্রিকোয়েন্সি (frequency) কাউন্ট করতে হয়। ASCII ক্যারেক্টার সেটের জন্য ২৫৬ আকারের একটি ইন্টিজার অ্যারে ব্যবহার করা একটি সাধারণ ও দক্ষ পদ্ধতি।
উদাহরণ
using System;
class Demo {
static int maxCHARS = 256;
static void calculate(String s, int[] cal) {
for (int i = 0; i < s.Length; i++)
cal[s[i]]++;
}
public static void Main() {
String s = "Welcometomywebsite!";
int[] cal = new int[maxCHARS];
calculate(s, cal);
Console.WriteLine("ডুপ্লিকেট ক্যারেক্টারগুলো:");
for (int i = 0; i < maxCHARS; i++) {
if(cal[i] > 1) {
Console.WriteLine("ক্যারেক্টার: " + (char)i);
Console.WriteLine("ঘটনা: " + cal[i] + " বার");
}
}
}
}
আউটপুট
ডুপ্লিকেট ক্যারেক্টারগুলো: ক্যারেক্টার: e ঘটনা: 4 বার ক্যারেক্টার: m ঘটনা: 2 বার ক্যারেক্টার: o ঘটনা: 2 বার ক্যারেক্টার: t ঘটনা: 2 বার ক্যারেক্টার: w ঘটনা: 2 বার
নোট: এই কোডটি কেস-সংবেদনশীল (case-sensitive)। 'W' এবং 'w' আলাদা গिना হবে। ইউনিকোড সাপোর্টের জন্য Dictionary<char, int> ব্যবহার করা ভালো।