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

पायथन में दी गई शर्त को पूरा करने वाली लेक्सिकोग्राफिकली सबसे छोटी स्ट्रिंग खोजें


मान लीजिए हमारे पास n संख्याओं का एक ऐरे A है, जहां A[i] एक स्ट्रिंग s के लंबाई (i+1) के प्रीफिक्स में विशिष्ट वर्णों की संख्या दर्शाता है, हमें लेक्सिकोग्राफिकली सबसे छोटी स्ट्रिंग ढूंढनी है जो दिए गए प्रीफिक्स ऐरे को संतुष्ट करती है। सभी वर्ण लोअरकेस अंग्रेजी वर्णमाला [a-z] होंगे। यदि ऐसी कोई स्ट्रिंग नहीं है तो -1 लौटाएं।

तो, यदि इनपुट A = [1,1,2,3,4] जैसा है, तो आउटपुट aabcd होगा क्योंकि प्रीफिक्स[0] में 1 विशिष्ट वर्ण है, प्रीफिक्स[1] में 1 विशिष्ट वर्ण है, प्रीफिक्स[2] में 2 विशिष्ट वर्ण हैं, प्रीफिक्स[3] में 3 विशिष्ट वर्ण हैं, प्रीफिक्स[4] में 4 विशिष्ट वर्ण हैं और स्ट्रिंग सबसे छोटी है।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • n := A का आकार

  • character := 'a'

  • string := खाली स्ट्रिंग

  • यदि n < 1 या A[0], 1 नहीं है, तो:

    • -1 लौटाएं

  • string := string + character

  • character := इस वर्तमान वर्ण का अगला वर्ण

  • i को 1 से n तक के लिए, करें:

    • difference := A[i] - A[i-1]

    • यदि difference > 1 या difference < 0 या A[i] > 26, तो:

      • -1 लौटाएं

    • अन्यथा जब difference, 0 के समान है, तो:

      • string := string + 'a'

    • अन्यथा,

      • string := string + character

      • character := इस वर्तमान वर्ण का अगला वर्ण

  • string लौटाएं

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

def get_smallest_string(A):    n = len(A)    character = 'a'    string = ""    if (n < 1 or A[0] != 1):       return -1    string += str(character)    character = chr(ord(character) + 1)    for i in range(1, n):       difference = A[i] - A[i - 1]       if (difference > 1 or difference < 0 or A[i] > 26):          return -1       elif (difference == 0):          string += 'a'       else:          string += character          character = chr(ord(character) + 1) return string A = [1, 1, 2, 3, 4] print(get_smallest_string(A))

इनपुट

[1, 1, 2, 3, 4]

आउटपुट

aabcd

  1. - पायथन में स्ट्रिंग का लेक्सिकोग्राफिकली सबसे बड़ा पैलिंड्रोमिक सबसीक्वेंस खोजें

    मान लीजिए हमारे पास एक स्ट्रिंग S है; हमें उस स्ट्रिंग का लेक्सिकोग्राफिकली सबसे बड़ा पैलिंड्रोमिक सबसीक्वेंस ढूंढना है।तो, यदि इनपुट tutorialspointtutorial जैसा है, तो आउटपुट uu होगा।इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:ans := खाली स्ट्रिंगmax_val := s[0]i को 1 से s के आकार तक के

  1. - Python Regex का उपयोग करके दी गई स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो regexes का उपयोग करके स्ट्रिंग में 1(0+1) की सभी घटनाओं को ढूंढता है। हमारे पास Python में एक re मॉड्यूल है जो नियमित अभिव्यक्ति के साथ काम करने में हमारी मदद करता है।आइए एक नमूना केस देखें।इनपुट: string = Sample 1(0+)1 string with 1(0+)1 unnecessary pat

  1. - पायथन रेगेक्स का उपयोग करके दी गई स्ट्रिंग में 10+1 के सभी पैटर्न खोजना

    समस्या विवरण हमें दी गई स्ट्रिंग में रेगेक्स पैटर्न 10+1 ढूंढना है। इसके लिए हम पायथन में उपलब्ध re मॉड्यूल का उपयोग कर सकते हैं। इस पैकेज में एक मेथड होता है जिसे findall कहा जाता है जो रेगेक्स और वह स्ट्रिंग स्वीकार करता है जिसमें हम खोजना चाहते हैं। यह हमें उस स्ट्रिंग में पैटर्न की सभी घटनाएं दे