ホームページ > バックエンド開発 > PHPチュートリアル > クローラーログフォルダー

クローラーログフォルダー

WBOY
リリース: 2024-07-18 10:20:06
オリジナル
526 人が閲覧しました

1598年。クローラーログフォルダー

簡単

Leetcode ファイル システムは、ユーザーが フォルダ変更 操作を実行するたびにログを保存します。

操作は以下に説明されています:

  • 「../」 : 現在のフォルダーの親フォルダーに移動します。 (既にメイン フォルダー内にいる場合は、同じフォルダー内に残ります)。
  • "./" : 同じフォルダー内に残ります。
  • "x/" : x という名前の子フォルダーに移動します (このフォルダーは常に存在することが保証されています)。

文字列ログのリストが与えられます。ここで、logs[i] は i 番目 ステップでユーザーによって実行された操作です。

ファイル システムはメイン フォルダーで開始され、その後ログ内の操作が実行されます。

フォルダー変更操作後にメインフォルダーに戻るために必要な操作の最小数を返します。

例 1:

Crawler Log Folder

  • 入力: ログ = ["d1/","d2/","../","d21/","./"]
  • 出力: 2
  • 説明: このフォルダー変更操作「../」を 2 回使用し、メイン フォルダーに戻ります。

例 2:

Crawler Log Folder

  • 入力: ログ = ["d1/","d2/","./","d3/","../","d31/"]
  • 出力: 3

例 3:

  • 入力: ログ = ["d1/","../","../","../"]
  • 出力: 0

制約:

  • 1 3
  • 2
  • logs[i] には、小文字の英字、数字、「.」、「/」が含まれます。
  • logs[i] はステートメントで説明されている形式に従います。
  • フォルダ名は英小文字と数字で構成されます。

解決策:

class Solution {

    /**
     * @param String[] $logs
     * @return Integer
     */
    function minOperations($logs) {
        $depth = 0;

        foreach ($logs as $log) {
            if ($log == "../") {
                if ($depth > 0) {
                    $depth--;
                }
            } elseif ($log != "./") {
                $depth++;
            }
        }

        return $depth;
    }
}
ログイン後にコピー

連絡先リンク

  • LinkedIn
  • GitHub

以上がクローラーログフォルダーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート