এই সেকশনে আমরা একটি স্ট্রিং বা ক্যারেক্টার স্ট্রিম থেকে প্রথম ইউনিক বা নন-রিপিটিং ক্যারেক্টার বের করব। এই সমস্যা সমাধানের একাধিক পদ্ধতি রয়েছে। আমরা একই স্ট্রিমের জন্য দুটি ভিন্ন প্রোগ্রাম তৈরি করব।
পদ্ধতি ১: ফাংশন ব্যবহার করে
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