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