मान लीजिए हमारे पास एक यूनिक्स पथ है, स्ट्रिंग्स की सूची में, हमें इसका हल किया गया संस्करण ढूंढना है। जैसा कि हम यूनिक्स में जानते हैं, ".." पिछली डायरेक्टरी को दर्शाता है और "." वर्तमान डायरेक्टरी पर रहने को दर्शाता है। यहां हल करने का अर्थ है दो प्रतीकों का मूल्यांकन करना ताकि हमें अंतिम डायरेक्टरी मिल जाए जिसमें हम वर्तमान में हैं।
उदाहरण के लिए, यदि इनपुट है path = ["usr", "..", "usr", ".", "local", "etc", "foo"], तो आउटपुट होगा ['usr', 'local', 'etc', 'foo'], क्योंकि भाग "/usr/../usr/./local/etc" को दर्शाता है जो "/usr/local/etc/foo" में हल होता है।
हल करने के चरण
s:= एक नई सूची।- प्रत्येक तत्व
iके लिएpathमें:- यदि
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']