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

पायथन में पालिंड्रोम लिंक्ड लिस्ट


मान लीजिए कि हमारे पास एक लिंक्ड सूची है। हमें यह जांचना होगा कि सूची के तत्व एपेलिंड्रोम बना रहे हैं या नहीं। तो अगर सूची तत्व [1,2,3,2,1] जैसा है, तो यह एक पैलिंड्रोम है।

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

  • तेज:=सिर, धीमा:=सिर, रेव:=कोई नहीं और झंडा:=1

  • यदि सिर खाली है, तो सही लौटें

  • जबकि फास्ट एंड नेक्स्ट ऑफ फास्ट उपलब्ध है

    • यदि अगला उपवास उपलब्ध है, तो ध्वज सेट करें:=0 और लूप तोड़ें

    • उपवास :=अगले उपवास के बाद

    • अस्थायी:=धीमा, धीमा:=धीमा के आगे

    • अस्थायी के आगे:=रेव, और रेव:=अस्थायी

  • तेज़ :=धीमे के आगे, और अगले धीमे :=रेव

  • यदि ध्वज सेट है, तो धीमा:=धीमे के आगे

  • जबकि तेज़ और धीमा कोई नहीं है,

    • यदि उपवास का मूल्य धीमे के मूल्य के समान नहीं है, तो झूठी वापसी करें

    • तेज़ :=तेज़ के आगे, और धीमा :=धीमे से अगला

  • सही लौटें

उदाहरण (पायथन)

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

क्लास लिस्टनोड:def __init__(self, data, next =none):self.data =data self.next =nextdef make_list(elements):head =ListNode(elements[0]) तत्वों में तत्व के लिए [1:] :ptr =सिर जबकि ptr.next:ptr =ptr.next ptr.next =ListNode (तत्व) वापसी हेडक्लास समाधान (वस्तु):def isPalindrome (स्वयं, सिर):तेज, धीमा =सिर, सिर रेव =कोई नहीं ध्वज =1 यदि सिर नहीं है:तेज और तेज होने पर सही लौटें। अगला:यदि तेज नहीं है। अगला। अगला:झंडा =0 तेजी से तोड़ें =तेज। अगला। अगला अस्थायी =धीमा धीमा =धीमा। अगला अस्थायी। अगला =रेव रेव =अस्थायी #प्रिंट (फास्ट.वैल) फास्ट =स्लो। नेक्स्ट स्लो। नेक्स्ट =रेव अगर फ्लैग:स्लो =स्लो। नेक्स्ट जबकि फास्ट एंड स्लो:अगर फास्ट। डेटा! =स्लो। डेटा:रिटर्न फाल्स फास्ट =फास्ट। नेक्स्ट स्लो =स्लो। रिटर्न ट्रूहेड =make_list([1,2,3,2,1])ob1 =Solution()print(ob1.isPalindrome(head)) 

इनपुट

[1,2,3,2,1]

आउटपुट

सच

  1. पायथन - परीक्षण करें कि क्या सूची पैलिंड्रोम है

    जब यह परीक्षण करने की आवश्यकता होती है कि क्या कोई सूची पैलिंड्रोम है, तो एक विधि परिभाषित की जाती है जो स्ट्रिंग को उलट देती है और जांचती है कि क्या यह मूल स्ट्रिंग के बराबर है। परिणाम के आधार पर, प्रासंगिक संदेश कंसोल पर प्रदर्शित होता है। एक सूची समझ और शामिल हों पद्धति का उपयोग किया जाता है। उदा

  1. पायथन - पैलिंड्रोम काउंट द्वारा मैट्रिक्स को सॉर्ट करें

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

  1. पायथन में लिंक की गई सूची से m नोड्स के बाद n नोड्स को हटाने का कार्यक्रम

    मान लीजिए कि हमें एक लिंक्ड सूची दी गई है जिसमें हेड के रूप में प्रारंभ नोड है, और दो पूर्णांक संख्याएं एम और एन हैं। हमें सूची को पार करना होगा और कुछ नोड्स को हटाना होगा जैसे कि पहले m नोड्स को सूची में रखा जाता है और अगले n नोड्स को पहले m नोड्स को हटा दिए जाने के बाद। हम इसे तब तक करते हैं जब तक