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

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


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

12
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#

उदाहरण के लिए, यदि दी गई स्ट्रिंग "23" है, तो संभावित स्ट्रिंग्स ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"] होंगी।

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

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

इनपुट

"37"

आउटपुट

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

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

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

  1. - Python में factorial()

    किसी संख्या का फैक्टोरियल ढूंढना डेटा विश्लेषण और Python में शामिल अन्य गणितीय विश्लेषण में एक बार-बार आने वाली आवश्यकता है। फैक्टोरियल हमेशा एक पॉजिटिव इंटीजर के लिए 1 से दी गई संख्या तक के सभी पूर्णांकों को गुणा करके पाया जाता है। इसके लिए तीन दृष्टिकोण हो सकते हैं जैसा कि नीचे दिखाया गया है।For L

  1. - संख्या में रिपीटिंग डिजिट्स खोजने के लिए पायथन रेगुलर एक्सप्रेशन कैसे लिखें?

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