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

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

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

1
2
ए बी सी
3
डी ई एफ
4
जी एच मैं
5
जम्मू कश्मीर
6
एम एन ओ
7
पी क्यू आर एस
8
तुम वो हो
9
डब्ल्यू एक्स वाई जेड
*
0
#

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

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

  • समस्या को पुनरावर्ती रूप से हल करने के लिए हल नामक एक सरणी को परिभाषित करें
  • समाधान विधि अंक, वर्ण, परिणाम, current_string और current_level लेता है, फ़ंक्शन इस तरह होगा
  • यदि current_level =अंकों की लंबाई है, तो परिणाम के बाद वर्तमान स्ट्रिंग जोड़ें, और वापस लौटें
  • सभी वर्णों के लिए मैं वर्णों में [अंकों [current_level]]
    • समाधान करें(अंक, वर्ण, परिणाम, current_string + i, current_level + 1)
  • वास्तविक कार्य इस तरह होगा
  • यदि अंकों की लंबाई 0 है, तो खाली सूची लौटाएं
  • संख्याओं और संबंधित वर्णों को एक स्ट्रिंग के रूप में धारण करने के लिए एक मानचित्र को परिभाषित करें
  • परिणाम:=एक खाली सूची
  • कॉल समाधान(अंक, वर्ण, परिणाम, "", 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. पायथन का उपयोग करके सभी नोड्स तक पहुंचने के लिए न्यूनतम संख्या में कोने खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है, जिसमें n कोने हैं और नोड्स 0 से n-1 तक गिने जाते हैं, ग्राफ को किनारे की सूची द्वारा दर्शाया जाता है, जहां किनारों [i] =(यू, वी) नोड यू से एक निर्देशित किनारे का प्रतिनिधित्व करता है। नोड वी। हमें शिखर का सबसे छोटा सेट ढूंढना है जिससे ग्राफ में सभ

  1. पायथन प्रोग्राम यह जांचने के लिए कि क्या किसी सरणी में सभी अंकों का उपयोग करके 3 संख्या से विभाज्य बनाना संभव है

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