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

फोन कीपैड का उपयोग करके टाइप की जा सकने वाली सभी संभावित स्ट्रिंग्स ज्ञात करने का पायथन प्रोग्राम


मान लीजिए हमारे पास 2-9 अंकों वाली एक स्ट्रिंग है। हमें उन सभी संभावित अक्षर संयोजनों को ढूंढना है जो वह नंबर उत्पन्न कर सकता है। टेलीफोन बटन की तरह अंक से अक्षरों का एक मैपिंग नीचे दिया गया है। ध्यान दें कि 1 कुछ वर्णों से मैप होता है लेकिन अक्षरों से नहीं।

1
2
a b c
3
d e f
4
g h i
5
j k l
6
m n o
7
p q r s
8
t u v
9
w x y z
*
0
#

उदाहरण के लिए, यदि दी गई स्ट्रिंग "49" है, तो संभावित स्ट्रिंग्स होंगी ['gw', 'gx', 'gy', 'gz', 'hw', 'hx', 'hy', 'hz', 'iw', 'ix', 'iy', 'iz']

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

  • समस्या को पुनरावर्ती रूप से हल करने के लिए solve नामक एक सरणी परिभाषित करें
  • solve विधि digits, characters, result, current_string और current_level लेती है, फ़ंक्शन इस तरह होगा
  • यदि current_level = digits की लंबाई, तो current_string को result के बाद जोड़ें, और लौटें
  • characters[digits[current_level]] में सभी वर्ण i के लिए
    • solve(digits, characters, result, current_string + i, current_level + 1) करें
  • वास्तविक फ़ंक्शन इस तरह होगा
  • यदि digits की लंबाई 0 है, तो खाली सूची लौटाएं
  • संख्याओं और संबंधित वर्णों को स्ट्रिंग के रूप में रखने के लिए एक मैप परिभाषित करें
  • result := एक खाली सूची
  • solve(digits, characters, result, "", 0) कॉल करें

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

उदाहरण

class Solution(object):
    def letterCombinations(self, digits):
        if len(digits) == 0:
            return []
        characters = {2:"abc",3:"def",4:"ghi",5:"jkl",6:"mno",7:"pqrs",8:"tuv",9:"wxyz"}
        result = []
        self.solve(digits,characters,result)
        return result
    def solve(self, digits, characters, result, current_string="",current_level = 0):
        if current_level == len(digits):
            result.append(current_string)
            return
        for i in characters[int(digits[current_level])]:
            self.solve(digits,characters,result,current_string+i,current_level+1)

ob1 = Solution()
print(ob1.letterCombinations("49"))

इनपुट

"49"

आउटपुट

['gw', 'gx', 'gy', 'gz', 'hw', 'hx', 'hy', 'hz', 'iw', 'ix', 'iy', 'iz']

  1. पायथन में सभी संभावित वैध पथों से अधिकतम स्कोर ज्ञात करने का प्रोग्राम पायथन में सभी संभावित वैध पथों से अधिकतम स्कोर ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास दो सरणियाँ nums1 और nums2 हैं। एक वैध पथ को इस प्रकार परिभाषित किया गया है: nums1 या nums2 को पार करने के लिए चुनें (सूचकांक-0 से)। सरणी को बाएं से दाएं पार करें। अब, यदि हम किसी ऐसे मान से गुजर रहे हैं जो nums1 और nums2 दोनों में मौजूद है, तो हम दूसरे सरणी पर पथ बदल सकते हैं।

  1. Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें? Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें?

    डायरेक्टेड एसाइक्लिक ग्राफ (DAG) में जिन वर्टेक्सेज़ का इन-डिग्री 0 है, उनसे सभी नोड्स पहुंचे जा सकते हैं। एल्गोरिदम सभी नोड्स का सेट बनाएं (0 से n-1)। सभी एजेज़ के डेस्टिनेशन नोड्स (v) का सेट बनाएं। सोर्स नोड्स = सभी नोड्स - डेस्टिनेशन नोड्स (यानी इन-डिग्री 0 वाले)। यही मिनिमम वर्टेक्स सेट है। उद

  1. पायथन प्रोग्राम: जांचें कि क्या ऐरे में सभी डिजिट्स का उपयोग करके 3 से विभाज्य संख्या बनाना संभव है पायथन प्रोग्राम: जांचें कि क्या ऐरे में सभी डिजिट्स का उपयोग करके 3 से विभाज्य संख्या बनाना संभव है

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इंटीजर्स के ऐरे इनपुट दिए जाने पर, हमें यह ढूंढना होगा कि क्या इन नंबर्स में उपलब्ध सभी डिजिट्स का उपयोग करके एक इंटीजर बनाना संभव है जो 3 से विभाज्य हो। यहां हम एक फंक्शन जनरेट करेंग