কম্পিউটার টিউটোরিয়াল

পাইথনে ফোন নম্বরের লেটার কম্বিনেশন


मान लीजिए हमारे पास 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. পাইথনে প্যালিনড্রোম নাম্বার যাচাই (Palindrome Number)

  2. পাইথন প্রোগ্রাম: একটি সংখ্যার সব অঙ্ক সেটি বিভাজ্য কিনা যাচাই করা

  3. পাইথনে ফ্যাক্টোরিয়াল (factorial) বের করার তিনটি পদ্ধতি

  4. পাইথন রেগুলার এক্সপ্রেশন দিয়ে নাম্বারে রিপিটিং ডিজিট খুঁজে বের করবেন?