【Leecode 菜狗刷题心得】 T71 简化路径(中等)

思路:将字符串分割 放入栈* 再拼接成指定格式字符串(思路正确)

难点:对split()不熟练,不清除相邻分隔符会做何种处理;对栈声明以及基本方法不熟练

知识点总结:

1.split()

特殊情况
  1. 字符串开头有分隔符:开头产生一个空字符串,其余正常。
  2. 分隔符相互紧挨着:每两个分隔符产生一个空字符串,若有三个分隔符则会有2各空字符,以此类推。
  3. 字符串最尾部有分割符:末尾产生一个空字符串,其余正常。

2. Stack

Stack stack = new Stack();

*标准解答中声明栈:

Deque<String> stack = new ArrayDeque<String>();

 ArrayDeque是 Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。同时, ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。

ArrayDeque是 Deque的实现类,可以作为栈来使用,效率高于 Stack;也可以作为队列来使用,效率高于 LinkedList。

 ArrayDeque 是 Java 集合中双端队列数组实现,双端队列的链表实现(LinkedList)。

需要注意的是, ArrayDeque不支持 null值。

 >> 所以可以通过使用ArrayDeque来代替Stack来提高效率

3.拼接字符串我使用String 可以用StringBuffer来优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值