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

पायथन में m आकार के वर्णमाला से अक्षरों से बनी n लंबाई की स्ट्रिंग खोजने का प्रोग्राम जिसमें कोई पैलिंड्रोम न हो


मान लीजिए हमारे पास m संख्या में अक्षर हैं और एक और मान n है। हमें इन m अक्षरों से लेकर लंबाई n की उन स्ट्रिंग्स की संख्या गिननी है जिनमें लंबाई 1 से अधिक कोई पैलिंड्रोमिक सबस्ट्रिंग नहीं है। यदि उत्तर बहुत बड़ा है तो परिणाम को 10^9+7 से मॉड करें।

तो, यदि इनपुट n = 2, m = 3 है, तो आउटपुट 6 होगा क्योंकि m = 3, इसलिए यदि वर्णमाला {x,y,z} है, तो हम [xx,xy,xz,yx,yy,yz,zx,zy,zz] जैसी स्ट्रिंग्स उत्पन्न कर सकते हैं लेकिन [xx,yy,zz] मान्य नहीं हैं इसलिए 6 स्ट्रिंग्स हैं।

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

  • p := 10^9+7
  • यदि n, 1 के समान है, तो
    • m mod p लौटाएं
  • यदि n, 2 के समान है, तो
    • m *(m - 1) mod p लौटाएं
  • यदि m <= 2, तो
    • 0 लौटाएं
  • m*(m-1) * ((m-2)^(n-2) mod p) mod p लौटाएं

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

def solve(n, m): p = 10**9+7 if n == 1: return m % p if n == 2: return m * (m - 1) % p if m <= 2: return 0 return m * (m - 1) * pow(m - 2, n - 2, p) % p n = 2 m = 3 print(solve(n, m))

इनपुट

3, [1,2,3,4,1] 

आउटपुट

6

  1. - पायथन में x, y, z अक्षरों की i, j, k संख्या वाले सबसीक्वेंस की संख्या ढूंढने का प्रोग्राम

    मान लीजिए हमारे पास x, y और z के साथ एक स्ट्रिंग s है, हमें उन सबसीक्वेंस की संख्या ढूंढनी है जिनमें i संख्या के x कैरेक्टर्स हैं, उसके बाद j संख्या के y कैरेक्टर्स और उसके बाद k संख्या के z कैरेक्टर्स हैं जहां i, j, k ≥ 1। तो, अगर इनपुट है s = xxyz, तो आउटपुट 3 होगा, क्योंकि हम दो xyz और एक xxyz

  1. - पायथन में दी गई शर्त के साथ सबसे लंबे सबलिस्ट की लंबाई खोजने का प्रोग्राम

    सबलिस्ट का अधिकतम। 6।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे−ret := 0दो डबल एंडेड क्यू minq और maxq परिभाषित करेंl := 0, r := 0जब तक r < nums का आकार, करेंn := nums[r]जब तक minq और n < nums[minq का अंतिम तत्व], करेंminq से अंतिम तत्व हटाएंr को minq के अंत में डालें nums[maxq का अंतिम तत

  1. - पायथन में दिए गए अक्षरों का उपयोग करके बनाए जा सकने वाले सबसे लंबे स्ट्रिंग की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास words नामक स्ट्रिंग्स की एक सूची और letters नामक एक अन्य स्ट्रिंग है, हमें words में सबसे लंबी स्ट्रिंग की लंबाई ढूंढनी है जिसे letters के वर्णों से बनाया जा सकता है। यदि कोई शब्द नहीं बनाया जा सकता, तो 0 लौटाएं। यहां हम अक्षरों का पुनः उपयोग नहीं कर सकते। उदाहरण के लिए, यदि इनप