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

C++-এ স্ট্রিংয়ে প্রথম ইউনিক ক্যারেক্টারের ইন্ডেক্স বের করা

একটি স্ট্রিং দেওয়া থাকলে, সেটিতে প্রথম নন-রিপিটিং ক্যারেক্টারের ইন্ডেক্স বের করতে হবে। না থাকলে -1 রিটার্ন করুন।

ইনপুট-১

s = "tutorialspoint"

আউটপুট

1

ব্যাখ্যা

'u' হল প্রথম ইউনিক ক্যারেক্টার যার ইন্ডেক্স ১।

ইনপুট-২

s = "aaasttarrs"

আউটপুট

-1

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

হ্যাশম্যাপ (unordered_map<char,int>) দিয়ে ফ্রিকোয়েন্সি গণনা করুন।

  • স্ট্রিং ইনপুট নিন।
  • uniqueChar(string str) ফাংশন ইন্ডেক্স রিটার্ন করবে।
  • প্রথম পাসে সব ক্যারেক্টারের ফ্রিকোয়েন্সি ম্যাপে রাখুন।
  • দ্বিতীয় পাসে স্ট্রিং ট্রাভার্স করে প্রথম ক্যারেক্টার যেটির ফ্রিকোয়েন্সি ১, তার ইন্ডেক্স রিটার্ন করুন।
  • না পাওয়া গেলে -1 রিটার্ন করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int uniqueChar(string str) {
    unordered_map<char,int> mp;
    for (char c : str) mp[c]++;
    for (int i = 0; i < str.size(); i++)
        if (mp[str[i]] == 1) return i;
    return -1;
}

int main() {
    string s = "tutorialspoint";
    cout << uniqueChar(s) << endl;
    return 0;
}

আউটপুট

1
  1. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  2. C++ ব্যবহার করে ব্র্যাকেট স্ট্রিংয়ে সমান পয়েন্ট বের করা

  3. C#-এ স্ট্রিংয়ের প্রথম ক্যারেক্টার বের করা (Substring)

  4. পাইথনে দেওয়া স্ট্রিং-এ প্রথম পুনরাবৃত্ত ক্যারেক্টারটির ইনডেক্স খুঁজে বের করার প্রোগ্রাম