मान लीजिए हमारे पास एक स्ट्रिंग है और हमें स्ट्रिंग में पहला अद्वितीय वर्ण ढूंढना है। उदाहरण के लिए, यदि स्ट्रिंग "people" जैसी है, तो पहला अक्षर जिसकी घटना एक है वह 'o' है। तो सूचकांक वापस किया जाएगा, जो यहां 2 है। यदि ऐसा कोई वर्ण नहीं है, तो -1 वापस करें।
हल करने के चरण
- एक फ्रीक्वेंसी मैप बनाएं
- स्ट्रिंग में प्रत्येक वर्ण c के लिए
- यदि c फ्रीक्वेंसी में नहीं है, तो इसे फ्रीक्वेंसी में डालें, और मान 1 रखें
- अन्यथा, फ्रीक्वेंसी में काउंट बढ़ाएं
- फ्रीक्वेंसी मैप को स्कैन करें, यदि किसी विशिष्ट कुंजी का मान 1 है, तो उस कुंजी को वापस करें, अन्यथा -1 वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
frequency = {}
for i in s:
if i not in frequency:
frequency[i] = 1
else:
frequency[i] +=1
for i in range(len(s)):
if frequency[s[i]] == 1:
return i
return -1
ob1 = Solution()
print(ob1.firstUniqChar("people"))
print(ob1.firstUniqChar("abaabba"))
इनपुट
"people" "abaabba"
आउटपुट
2 -1