圖解LeetCode——1598. 文件夾操作日志搜集器(難度:簡單)

一、題目

每當(dāng)用戶執(zhí)行變更文件夾操作時(shí),LeetCode 文件系統(tǒng)都會(huì)保存一條日志記錄。

下面給出對(duì)變更操作的說明:

"../" :移動(dòng)到當(dāng)前文件夾的父文件夾。如果已經(jīng)在主文件夾下,則 繼續(xù)停留在當(dāng)前文件夾 。
"./" :繼續(xù)停留在當(dāng)前文件夾。
"x/" :移動(dòng)到名為 x 的子文件夾中。題目數(shù)據(jù) 保證總是存在文件夾x

給你一個(gè)字符串列表 logs ,其中 logs[i] 是用戶在第i步執(zhí)行的操作。

文件系統(tǒng)啟動(dòng)時(shí)位于主文件夾,然后執(zhí)行 logs 中的操作。

執(zhí)行完所有變更文件夾操作后,請(qǐng)你找出 返回主文件夾所需的最小步數(shù) 。

二、示例

2.1> 示例 1:

【輸入】logs = ["d1/","d2/","../","d21/","./"]
【輸出】2
【解釋】執(zhí)行 "../" 操作變更文件夾 2 次,即可回到主文件夾

2.2> 示例 2:

【輸入】logs = ["d1/","d2/","./","d3/","../","d31/"]
【輸出】3

2.3> 示例 3:

【輸入】logs = ["d1/","../","../","../"]
【輸出】0

提示:

  • 1 <= logs.length <= 10^3
  • 2 <= logs[i].length <= 10
  • logs[i] 包含小寫英文字母,數(shù)字,'.''/'
  • logs[i] 符合語句中描述的格式
  • 文件夾名稱由小寫英文字母數(shù)字組成

三、解題思路

根據(jù)本題題意模擬操作計(jì)算即可,詳情如下圖所示:

  • 當(dāng)logs[i]等于“../”時(shí),表示后退一步,即:step--,此時(shí)需要注意,step不要被減成負(fù)數(shù)。
  • 當(dāng)logs[i]等于“./”時(shí),step值不變;
  • 其他情況,step++;

四、代碼實(shí)現(xiàn)

class Solution {
    public int minOperations(String[] logs) {
        int step = 0;
        for (int i = 0; i < logs.length; i++) {
            if (logs[i].equals("../")) step = (step == 0) ? step : step - 1;
            else if (!logs[i].equals("./")) step++;
        }
        return step;
    }
}
1.png

今天的文章內(nèi)容就這些了:

寫作不易,筆者幾個(gè)小時(shí)甚至數(shù)天完成的一篇文章,只愿換來您幾秒鐘的 點(diǎn)贊 & 分享 。

更多技術(shù)干貨,歡迎大家關(guān)注公眾號(hào)“爪哇繆斯” ~ \(o)/ ~ 「干貨分享,每天更新」

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容