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

পাইথনে ক্যারেক্টার স্ট্রীম থেকে প্রথম নন-রিপিটিং ক্যারেক্টার খুঁজে বের করা

একটি ক্যারেক্টার স্ট্রীম বা স্ট্রিং দেওয়া আছে। স্ট্রিং-এ প্রথম যে ক্যারেক্টারটি শুধু একবার এসেছে (non-repeating), তার ইনডেক্স ফেরত দিতে হবে। না থাকলে -1।

উদাহরণ

ইনপুট: "people" → আউটপুট: 2 ('o' প্রথম নন-রিপিটিং, ইনডেক্স ২)

ইনপুট: "abaabba" → আউটপুট: -1 (কোনো নন-রিপিটিং ক্যারেক্টার নেই)

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

  1. একটি ফ্রিকোয়েন্সি ম্যাপ (dictionary) বানান।
  2. স্ট্রিং স্ক্যান করে প্রতিটি ক্যারেক্টারর কাউন্ট বড়ান।
  3. আবার স্ট্রিং স্ক্যান করে প্রথম যে ক্যারেক্টারর কাউন্ট ১, তার ইনডেক্স ফেরত দিন।
  4. না পেলে -1 ফেরত দিন।

পাইথন কোড


class Solution:
    def firstUniqChar(self, s):
        frequency = {}
        for ch in s:
            if ch not in frequency:
                frequency[ch] = 1
            else:
                frequency[ch] += 1
        
        for i in range(len(s)):
            if frequency[s[i]] == 1:
                return i
        return -1

ob1 = Solution()
print(ob1.firstUniqChar("people"))   # 2
print(ob1.firstUniqChar("abaabba"))  # -1

ইনপুট

"people", "abaabba"

আউটপুট

2 -1
  1. পাইথন প্রোগ্রাম: ক্যারেক্টার স্ট্রিম থেকে প্রথম নন-রিপিটিং ক্যারেক্টার বের করা

  2. পাইথনে স্ট্রিংয়ের প্রথম পুনরাবৃত্ত শব্দ খুঁজে বের করার প্রোগ্রাম

  3. পাইথন টাপল থেকে প্রথম এলিমেন্ট পপ-আপ কীভাবে করবেন?

  4. পাইথন ব্যবহার করে স্ট্রিং থেকে ক্যারেক্টার মুছে ফেলার পদ্ধতি