Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में वर्णों की एक धारा से पहला गैर-दोहराव वाला चरित्र खोजें


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

  1. पायथन में एक स्ट्रिंग में पहला दोहराया शब्द खोजें?

    एक स्ट्रिंग दी गई है। हमारा काम दिए गए स्ट्रिंग में पहले दोहराए गए शब्द को ढूंढना है। इस समस्या को लागू करने के लिए हम पायथन संग्रह का उपयोग कर रहे हैं। संग्रह से, हम काउंटर () विधि प्राप्त कर सकते हैं। एल्गोरिदम Repeatedword(n) /* n is the string */ Step 1: first split given string separated by sp

  1. पायथन टुपल से पहला तत्व कैसे पॉप-अप करें?

    परिभाषा के अनुसार, टपल वस्तु अपरिवर्तनीय है। इसलिए इसमें से तत्व को हटाना संभव नहीं है। हालांकि, एक वर्कअराउंड टपल को एक सूची में बदल दिया जाएगा, सूची से वांछित तत्व को हटा दिया जाएगा और इसे वापस टुपल में बदल दिया जाएगा। >>> T1=(1,2,3,4) >>> L1=list(T1) >>> L1.pop(0) 1 >

  1. कैसे अजगर का उपयोग कर एक स्ट्रिंग से एक चरित्र को हटाने के लिए?

    यदि आप स्ट्रिंग से किसी निश्चित अनुक्रमणिका पर किसी वर्ण को हटाना चाहते हैं, तो आप उस वर्ण के बिना स्ट्रिंग बनाने के लिए स्ट्रिंग स्लाइसिंग का उपयोग कर सकते हैं। उदाहरण के लिए, >>> s = "Hello World" >>> s[:4] + s[5:] "Hell World" लेकिन यदि आप किसी वर्ण या वर्णो