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

रिकर्सन का उपयोग करके लेक्सिकोग्राफिक ऑर्डर में स्ट्रिंग के सभी क्रमपरिवर्तन मुद्रित करने के लिए पायथन प्रोग्राम

जब रिकर्सन का उपयोग करते हुए एक स्ट्रिंग के सभी क्रमपरिवर्तन को लेक्सिकोग्राफिक क्रम में प्रिंट करने की आवश्यकता होती है, तो एक विधि परिभाषित की जाती है, जो तत्वों के अनुक्रम पर पुनरावृति करने के लिए 'फॉर' लूप का उपयोग करती है, और तत्वों में शामिल होने के लिए 'जॉइन' विधि का उपयोग करती है।

नीचे उसी का प्रदर्शन है -

उदाहरण

from math import factorial
def lexicographic_permutation_order(s):
   my_sequence = list(s)
   for _ in range(factorial(len(my_sequence))):
      print(''.join(my_sequence))
      next = next_in_permutation(my_sequence)

      if next is None:
         my_sequence.reverse()
      else:
         my_sequence = next

def next_in_permutation(my_sequence):
   if len(my_sequence) == 0:
      return None
   next = next_in_permutation(my_sequence[1:])
   if next is None:
      my_sequence[1:] = reversed(my_sequence[1:])
      q = 1
      while q < len(my_sequence) and my_sequence[0] > my_sequence[q]:
         q += 1
      if q == len(my_sequence):
         return None
      my_sequence[0], my_sequence[q] = my_sequence[q], my_sequence[0]
      return my_sequence
   else:
      return [my_sequence[0]] + next

my_input = input('Enter a string : ')
print("The string is :")
print(my_input)
print("The method is being called...")
lexicographic_permutation_order(my_input)

आउटपुट

Enter a string : hey
The string is :
hey
The method is being called...
hey
hye
yeh
yhe
hey
hye

स्पष्टीकरण

  • आवश्यक पैकेज आयात किए जाते हैं।

  • 'lexicographic_permutation_order' नाम की एक विधि परिभाषित की गई है जो तत्वों के शब्दावली क्रम को खोजने में मदद करती है।

  • विधि 'next_in_permutation' स्ट्रिंग में अगले क्रमपरिवर्तन को निर्धारित करने में मदद करती है।

  • उपयोगकर्ता द्वारा एक स्ट्रिंग दर्ज की जाती है, और कंसोल पर प्रदर्शित होती है।

  • इस स्ट्रिंग को पैरामीटर के रूप में पास करके विधि को कॉल किया जाता है।

  • आउटपुट कंसोल पर प्रदर्शित होता है।


  1. एक अंतराल में सभी प्राइम नंबरों को प्रिंट करने के लिए पायथन प्रोग्राम

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

  1. किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन मुद्रित करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है जिसकी हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # conversion def toString(List):    return &

  1. एक स्ट्रिंग में समान लंबाई के शब्दों को प्रिंट करने के लिए पायथन प्रोग्राम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक स्ट्रिंग को देखते हुए हमें स्ट्रिंग के सभी शब्दों को सम लंबाई के साथ प्रदर्शित करने की आवश्यकता है। दृष्टिकोण स्प्लिट () फ़ंक्शन का उपयोग करके इनपुट स्ट्रिंग को विभाजित करें। के लिए . का