首页 > 其他分享 >71. 简化路径

71. 简化路径

时间:2024-01-19 09:55:53浏览次数:21  
标签:String res 路径 length isEmpty 71 path 简化 StringBuilder

原题链接

class Solution {
    public String simplifyPath(String path) {
        // 用栈保存路径
        Deque<String> stack = new LinkedList<>();
        for (String s : path.split("/")) {
            // 返回上层
            if (s.equals("..")) {
                if (!stack.isEmpty()) {
                    stack.pop();
                }
            } else if (!s.equals(".") && !s.isEmpty()) {
                // 新的下级目录
                stack.push(s);
            }
        }
        StringBuilder sb = new StringBuilder();
        // 从栈底开始遍历
        while (!stack.isEmpty()) {
            sb.append("/").append(stack.removeLast());
        }
        if (sb.length() == 0) {
            return "/";
        }
        return sb.toString();
    }
}
class Solution {
   public String simplifyPath(String path) {
        StringBuilder res = new StringBuilder();
        StringBuilder name = new StringBuilder();
        if (path.charAt(path.length() - 1) != '/') path = path + "/";
        for (int i = 0; i < path.length(); i++) {
            char c = path.charAt(i);
            if (c != '/') name.append(c);
            else {
                String nameStr = name.toString();
                if (nameStr.equals("..")) {
                    while (!res.isEmpty() && res.charAt(res.length() - 1) != '/') res.deleteCharAt(res.length() - 1);
                    if (!res.isEmpty()) res.deleteCharAt(res.length() - 1);
                } else if (!nameStr.equals(".") && !nameStr.isEmpty()) {
                    res.append("/").append(nameStr);
                }
                name = new StringBuilder();
            }
        }
        if (res.isEmpty()) return "/";
        return res.toString();
    }
}

标签:String,res,路径,length,isEmpty,71,path,简化,StringBuilder
From: https://www.cnblogs.com/eiffelzero/p/17973985

相关文章

  • 【2024潇湘夜雨】WIN11_Pro_21H2.22000.2713软件选装纯净版1.15
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_21H2.22000.2713。2.增加部分优化方案,手工精简部分较多。3.OS版本号为22000.2713。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.15.0.5》网卡版、......
  • 云知声山海大模型探寻英语学习新路径,打造专属英语学伴Utalk
    智慧教育与科技发展水平息息相关,其中人工智能在我国的教育信息化推进中扮演着重要角色,是整个教育行业进入“教育智慧时代”的基础,也是落实智慧教育的前提。在此背景下,云知声依托山海大模型,研发出智慧教学相关产品,赋能智慧教育向好发展。以英语学习来说,它在孩子的教育过程中......
  • hey_left 8 Codeforces Round 871 (Div. 4)
    题目链接A.直接比较输入字符串和已知字符串有几个不同即可#include<bits/stdc++.h>usingnamespacestd;voidsolve(){strings;cin>>s;intans=0;stringt="codeforces";for(inti=0;i<10;i++){if(s[i]!=t[i])ans++;}cout<&......
  • 「暴力」拿出最少数目的魔法豆(力扣第2171题)
    本题为1月18日力扣每日一题题目来源:力扣第2171题题目tag:数位dp动态规划题面题目描述给定一个正整数数组beans,其中每个整数表示一个袋子里装的魔法豆的数目。请你从每个袋子中拿出一些豆子(也可以不拿出),使得剩下的非空袋子中(即至少还有一颗魔法豆的袋子)魔法豆的数目相等......
  • nginx的几个默认路径
    nginx的几个默认路径:https://blog.csdn.net/Mrzhang567/article/details/122248988?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170555854916800188566783%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=17055585491680......
  • 【Python小随笔】获取路径的所有文件夹信息
    获取文件夹下的所有文件名,文件大小,更新时间importosimportdatetimedefget_files_info(folder_path):files_info=[]#获取起始路径base_path=os.path.abspath(folder_path)#遍历文件夹下的所有文件和子文件夹forroot,dirs,filesinos.wa......
  • 路径刷新算法
    deffind_paths_and_modify(data,target_path,new_value):paths=[]stack=[([],data)]whilestack:current_path,current_data=stack.pop()ifisinstance(current_data,dict):forkey,valueincurrent_data.item......
  • 「数位dp」统计整数数目(力扣第2719题)
    本题为1月16日力扣每日一题题目来源:力扣第2719题题目tag:数位dp动态规划题面题目描述给你两个数字字符串num1和num2,以及两个整数max_sum和min_sum。如果一个整数x满足以下条件,我们称它是一个好整数:\(num1\leqx\leqnum2\)\(min\_sum\leqdigit\_sum(x)\leqmax\_s......
  • Nginx转发解析长域名多路径域名
    Nginx解析短域名,例如:访问http://192.168.1.23可直接跳转到http://192.168.1.23/webroot/decisionserver{listen90;server_namelocalhost;#匹配/转到/webroot/decision上;#^(.*)$表示/后任意部分,除非和其他location匹配否则一律转向/webroot/decisio......
  • openEuler欧拉安装Jenkins并修改构建workspace路径
    一、系统优化关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭selinuxsed-ri's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/configsetenforce0二、安装Jenkinssudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/je......