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

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

এই সেকশনে আমরা একটি স্ট্রিং বা ক্যারেক্টার স্ট্রিম থেকে প্রথম ইউনিক বা নন-রিপিটিং ক্যারেক্টার বের করব। এই সমস্যা সমাধানের একাধিক পদ্ধতি রয়েছে। আমরা একই স্ট্রিমের জন্য দুটি ভিন্ন প্রোগ্রাম তৈরি করব।

পদ্ধতি ১: ফাংশন ব্যবহার করে

def firstNonRepeatingChar(str1): 
    char_order = [] 
    counts = {} 
    for c in str1: 
        if c in counts: 
            counts[c] += 1 
        else: 
            counts[c] = 1 
            char_order.append(c) 
    for c in char_order: 
        if counts[c] == 1: 
            return c 
    return None 

print(firstNonRepeatingChar('PythonforallPythonMustforall')) 
print(firstNonRepeatingChar('tutorialspointfordeveloper')) 
print(firstNonRepeatingChar('AABBCC'))

রেজাল্ট

M 
u 
None

উপরের প্রোগ্রাম O(n) সমাধান দেয়। উপরের প্রোগ্রামে আমরা প্রথমে স্ট্রিংয়ের মাধ্যমে একবার লুপ করি। নতুন ক্যারেক্টার পেলে তা counts অবজেক্টে মান ১ দিয়ে স্টোর করি এবং char_order-এ অ্যাপেন্ড করি। রিপিটেড ক্যারেক্টার পেলে counts এর মান ১ বেড়ায়। অবশেষে char_order লুপ করে যেখানে counts এ মান ১ পাই, সেটি রিটার্ন করি।

পদ্ধতি ২: হвайল লুপ ব্যবহার করে

s = "tutorialspointfordeveloper" 
while s != "": 
    slen0 = len(s) 
    ch = s[0] 
    s = s.replace(ch, "") 
    slen1 = len(s) 
    if slen1 == slen0 - 1: 
        print("First non-repeating character is: ", ch) 
        break 
    else: 
        print("No Unique Character Found!")

রেজাল্ট

First non-repeating character is: u
  1. পাইথনে প্রথম থেকে শেষ নোড পর্যন্ত রেস্ট্রিক্টেড পথের সংখ্যা বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা

  4. পাইথনে অ্যারের যোগফল বের করা