首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  LeetCode

准备用 Rust 刷完 Leetcode

  •  
  •   rayingecho · 325 天前 · 16221 次点击
    这是一个创建于 325 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一周前学了一点 Rust 的皮毛, 手头没啥可以实践的项目, 想了想反正自己也没刷过 OJ, 就试试看最有名的 Leetcode.

    没想到一刷就停不下来了, Leetcode 这玩意儿比游戏还毒, 反馈迅速, 快感强烈, 尤其是用 Rust 每次做完之后的运行时间都是 "0 ms","4 ms" 之类的. 看着 Beats 100% 快感油然而生...

    不过也因为 Rust 本身的特性吃了踩了一些坑: 一开始做链表类题目的时候, 因为对 Onwership 理解不到位, 基本是处于被编译器吊打一晚上的状态. 期间还问了一个非常愚蠢的问题, 被狂喷之后又看了一遍 the book 里 ownership 相关的章节才算摸到了一点门道.

    这一周总结下来就是 Leetcode 真好玩(一周没碰 Artifact 了哈哈哈), Rust 真香, 同好可以留言交流.

    最后是项目仓库. 当然目前还只做了 30 题不到, 本来想至少做够 100 题再分享的, 不过项目里写了一点辅助代码来生成题目模板和帮助做本地单测, 寻思着指不定就能帮上谁, 也就厚颜无耻地放链接了:

    github: https://github.com/aylei/leetcode-rust

    16 回复  |  直到 2019-08-09 11:16:37 +08:00
        1
    Sparetire   325 天前 via Android
    同样也是打算用 Rust 刷题,初学 Rust,刚看完枚举,本以为像当初 C 学完指针和结构体就能写个链表出来,结果发现目前用 Rust 连个链表都写不出。。感觉自己菜破天际。。
        2
    Allianzcortex   325 天前
    我猜不是所有题目都支持 Rust 的(发现 Go 有不支持的,589/590 )
        3
    Vegetable   325 天前 via iPhone   ♥ 1
    g 胖没想到自己输给了 leetcode
        4
    gimp   325 天前
    正好需要,star 了
        5
    trait   325 天前 via iPhone   ♥ 2
    rust 不对 borrowchecker 有深刻的理解,链表树图刷题劝退属性点满,跟编译器斗争的时间远超算法本身
    leetcode 给的这链表树结构声明太随意,坑比较多,楼主后期可能还会遇到不少,给个 tip,去看下标准库的 take(), swap()和 mem 里的几个方法,会帮你节省时间
        6
    trait   325 天前 via iPhone   ♥ 1
    还有 refcell rc 这几个智能指针,以及 borrowchecker 两大原则
        7
    Moming   325 天前
    感觉刷题不如抄代码能感受新特性……我用 Python 刷到后面就写了几个 snippets 搞定了常用的数据结构,题目样式没有太大的变化。
    Rust 有很多不错的项目,提提 PR 也挺好玩的。
        8
    rayingecho   325 天前   ♥ 1
    @Sparetire
    一开始我也是这种感觉, 后来发现 Rust 写链表确实是个坎, 可以看看 [Learning Rust With Entirely Too Many Linked Lists]( https://cglab.ca/~abeinges/blah/too-many-lists/book/)
        9
    rayingecho   325 天前
    @gimp
    感谢鼓励
        10
    rayingecho   325 天前
    @trait
    不能更赞同, 跟链表斗争能很好地检验对 borrow checker 的理解...
        11
    rayingecho   325 天前
    @Moming
    感觉自己太菜了, 看到 rust 项目的 Help Wanted issue 都不太好意思下手
        12
    Moming   325 天前
    @rayingecho 同感,很多项目都只有给别人打 call 的份 😂
        13
    sherlockgy   315 天前
    谢了!
        14
    lynskylate   315 天前 via Android
    @trait 好建议,刚开始刷不会 mem:replace,写了一堆 unsafe
        15
    Simula411   182 天前 via Android
    9012 年 6 月了,楼主是那 200 强者之一吗?
        16
    unforgiven   125 天前
    @trait 正在被劝退的途中,148 题让我要爆炸了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2596 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 13:38 · PVG 21:38 · LAX 05:38 · JFK 08:38
    ♥ Do have faith in what you're doing.