मान लीजिए कि हमारे पास एक स्ट्रिंग है और हमें स्ट्रिंग में पहला अद्वितीय वर्ण ढूंढना है। तो यदि स्ट्रिंग "लोगों" की तरह है, तो पहला अक्षर जिसका घटना एक है वह 'ओ' है। तो सूचकांक वापस कर दिया जाएगा, वह यहाँ 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