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

পাইথনে ইউনিক্স স্টাইল পথ রিজলভ করার প্রোগ্রাম


मान लीजिए हमारे पास एक यूनिक्स पथ है, स्ट्रिंग्स की एक सूची में, हमें इसका समाधान किया गया संस्करण ढूंढना है। जैसा कि हम यूनिक्स में जानते हैं, ".." पिछली डायरेक्टरी को दर्शाता है और "." वर्तमान डायरेक्टरी पर रहने को दर्शाता है। यहां रिजल्विंग का अर्थ है दो प्रतीकों का मूल्यांकन करना ताकि हमें अंतिम डायरेक्टरी मिल जाए जिसमें हम वर्तमान में हैं।

उदाहरण के लिए, यदि इनपुट है path = ["usr", "..", "usr", ".", "local", "etc", "foo"], तो आउटपुट होगा ['usr', 'local', 'etc', 'foo'], क्योंकि यह भाग "/usr/../usr/./local/etc" को दर्शाता है जो "/usr/local/etc/foo" में समाधान होता है।

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

  • s := एक नई सूची
  • path में प्रत्येक तत्व i के लिए, करें
    • यदि i, '..' के समान है, तो
      • यदि s खाली नहीं है, तो
        • s से अंतिम तत्व हटाएं
    • अन्यथा जब i, '.' के समान नहीं है, तो
      • i को s के अंत में डालें
  • s वापस करें

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

उदाहरण

class Solution:    def solve(self, path):       s = []       for i in path:          if i == '..':             if len(s) >0:                s.pop()             elif i != '.':                s.append(i)       return s ob = Solution() print(ob.solve(["usr", "..", "usr", ".", "local", "etc", "foo"]))

इनपुट

["usr", "..", "usr", ".", "local", "etc", "foo"]

आउटपुट

['usr', 'local', 'etc', 'foo']

  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  3. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা

  4. পাইথনে অ্যারের যোগফল বের করা