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

पायथन में अक्षर टाइल संभावनाएं

मान लीजिए हमारे पास टाइल्स का एक समूह है, जहां प्रत्येक टाइल पर एक अक्षर tiles[i] प्रिंट है। उन गैर-खाली अक्षर अनुक्रमों की संख्या ज्ञात करें जो हम बना सकते हैं। इसलिए यदि इनपुट "AAB" है, तो आउटपुट 8 होगा। अनुक्रम हैं "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"

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

  • एक dfs() परिभाषित करें, जो count लेगा
  • sum := 0
  • i के लिए 1 से 26 तक की रेंज में
    • यदि count[i] = 0, तो शेष की जांच किए बिना अगले पुनरावृति के लिए जाएं
    • count[i] को 1 से घटाएं, और sum को 1 से बढ़ाएं
    • sum := sum + dfs(count)
    • count[i] को 1 से बढ़ाएं
  • sum लौटाएं
  • वास्तविक विधि इस तरह होगी -
  • आकार 26 का एक count सरणी बनाएं, और इसे 0 से भरें
  • tiles में प्रत्येक तत्व i के लिए
    • count[i - 'A' + 1] को 1 से बढ़ाएं
  • dfs(count) लौटाएं

उदाहरण

class Solution(object):
    def numTilePossibilities(self, tiles):
        count = [0 for i in range(27)]
        for i in tiles:
            count[ord(i)-ord('A')+1] += 1
        return self.dfs(count)
    def dfs(self, count):
        summ = 0
        for i in range(1, 27):
            if count[i] == 0:
                continue
            count[i] -= 1
            summ += 1
            summ += self.dfs(count)
            count[i] += 1
        return summ

ob = Solution()
print(ob.numTilePossibilities("AAB"))

इनपुट

"AAB"

आउटपुट

8
  1. - पायथन में काउंट एंड से

    यहां हम काउंट एंड से अनुक्रम देखेंगे। यह एक अनुक्रम है जिसके कुछ पद नीचे हैं: 1 11 21 1211 111221 स्ट्रिंग को इस तरह पढ़ा जाएगा: 1 (एक) 11 (एक 1) तो पिछले 1 को पढ़ें, और कहें एक 1 21 (दो 1) तो पिछले 11 को पढ़ें, और कहें दो 1 1211 (एक 2 एक 1) तो पिछले 21 को पढ़ें, और कहें एक 2 एक 1 111221 (एक 1 ए

  1. पायथन प्रोग्राम: सरणी में इनवर्जन गिनें पायथन प्रोग्राम: सरणी में इनवर्जन गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें आवश्यक इनवर्जन गिनने और प्रदर्शित करने हैं। इनवर्जन काउंट यह गिनकर प्राप्त किया जाता है कि सरणी को क्रमबद्ध करने के लिए कितने चरणों की आवश्यकता है। उदाहरण arr[j]): inv_count += 1 re

  1. - पायथन में क्लास या स्टेटिक वेरिएबल्स

    जब किसी क्लास के अंदर लेकिन किसी मेथड के बाहर वेरिएबल घोषित किया जाता है, तो उसे क्लास वेरिएबल या स्टेटिक वेरिएबल कहा जाता है। यह सभी इंस्टेंसेज़ द्वारा साझा किया जाता है। उदाहरण 1: काउंटर के रूप में उपयोग class Fruits: count = 0 # क्लास वेरिएबल def __init__(self, name, count): se