मान लीजिए हमारे पास लॉग्स हैं जहां हमारे पास फोल्डर में प्रवेश करने का पथ है, वहां अलग-अलग प्रतीक हो सकते हैं जैसे:
- "../" : वर्तमान से पैरेंट फोल्डर में जाएं। (यदि हम मेन फोल्डर में हैं, तो स्थान न बदलें)।
- "./" : वर्तमान फोल्डर में रहें।
- "x/" : x नाम के चाइल्ड फोल्डर में जाएं।
लॉग्स से हमें अंतिम फोल्डर से जहां हम रुकते हैं, मेन फोल्डर पर वापस आने के लिए आवश्यक न्यूनतम ऑपरेशन्स की संख्या ढूंढनी है।
इसलिए, यदि इनपुट है: logs = ["Dir1/", "Dir2/", "../", "Dir2/", "Dir3/", "./"], तो आउटपुट 3 होगा।

छवि से हम देख सकते हैं कि हमें होम पहुंचने के लिए तीन बार पीछे हटना होगा।
हल करने के चरण
- stk := एक नई सूची
- logs में प्रत्येक आइटम i के लिए:
- यदि i == "../" और stk का आकार > 0, तो stk से अंतिम तत्व हटाएं
- अन्यथा यदि i != "./" और i != "../", तो stk के अंत में i डालें
- अन्यथा, अगले इटरेशन पर जाएं
- stk में आइटम्स की संख्या वापस करें
उदाहरण (Python)
def solve(logs):
stk = []
for i in logs:
if i == "../" and len(stk) > 0:
stk.pop()
elif i != "./" and i != "../":
stk.append(i)
else:
continue
return len(stk)
logs = ["Dir1/", "Dir2/", "../", "Dir2/", "Dir3/", "./"]
print(solve(logs))
इनपुट
["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]
आउटपुट
3