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

पायथन में एक फोन नंबर का पत्र संयोजन


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

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

उदाहरण के लिए, यदि दी गई स्ट्रिंग "23" है, तो संभावित तार ["विज्ञापन", "एई", "एएफ", "बीडी", "बी", "बीएफ", "सीडी", "सीई" होंगे ”, "सीएफ"]

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

  • समस्या को पुनरावर्ती रूप से हल करने के लिए हल नामक एक सरणी को परिभाषित करें
  • समाधान विधि अंक, वर्ण, परिणाम, 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("37"))

इनपुट

"37"

आउटपुट

["dp","dq","dr","ds","ep","eq","er","es","fp","fq","fr","fs"]

  1. पायथन प्रोग्राम फॉर चेक अगर किसी संख्या के सभी अंक इसे विभाजित करते हैं

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

  1. फैक्टोरियल () पायथन में

    डेटा विश्लेषण और अजगर से जुड़े अन्य गणितीय विश्लेषण में किसी संख्या का भाज्य ज्ञात करना एक लगातार आवश्यकता है। 1 से शुरू होकर दी गई संख्या तक सभी पूर्णांकों को गुणा करके हमेशा एक धनात्मक पूर्णांक के लिए भाज्य ज्ञात किया जाता है। इसे खोजने के तीन तरीके हो सकते हैं, जैसा कि नीचे दिखाया गया है। फॉर लूप

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

    निम्न कोड दिए गए स्ट्रिंग में दोहराए जाने वाले अंकों को खोजने के लिए पायथन रेगेक्स का उपयोग करता है उदाहरण import re result = re.search(r'(\d)\1{3}','54222267890' ) print result.group() आउटपुट यह आउटपुट देता है 2222