<
查看: 1578| 回复: 6
收起左侧

[Leetcode] Rust适不适合刷题?Pros and Cons

GeorgeX | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1
100%
0%
0

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

Rust适不适合刷题?和C++比哪个舒服?希望走得远的朋友谈谈感想。小弟在这里抛个砖

提问背景:

用Python和C++做过几百。三年工作经验。
Rust新手,最近试着参与开源项目,还用它做了几道题。

从开发的角度看Rust

语法严谨
错误信息友好
容器和第三方库看起来也算齐全

从刷题的角度看Rust

以上似乎不全是优势了
Pros
std库工具齐全
match语法和if let的表达能力很强。例如简化处理空值的流程
             //2. Add two numbers 片段
            let sum = match (&l1, &l2) {
                (Some(n1), Some(n2)) => n1.val + n2.val + carry,
                (Some(n1), None) => n1.val + carry,
                (None, Some(n2)) => n2.val + carry,
                (None, None) => carry,
            };

Cons
是否mutable?copy还是move?它们【无处不在】。Distracting
String经常要转成Vec<char>
标准容器使用 usize 作为索引类型,处理负索引时需要额外逻辑。Distracting
不同数值类型之间的运算需要显式转换,例如i32不能和f64运算。Distracting


上一篇:请问大家机经题里面的会员题要不要刷?
下一篇:机经题目的简单题请问还要不要刷,谢谢大家?
本楼:   👍  3
100%
0%
0   👎
全局:   543
97%
3%
15
本帖最后由 OnjoujiToki 于 2024-3-9 23:46 编辑

我推荐Rust玩家去Atcoder刷

1. Leetcode一些题的输入默认的类型没法更改,你自己输入输出可以调成合适的类型。
可能你觉得Rust输入输出比较麻烦,但是Atcoder自带了proconio,输入输出比绝大多数语言都简单
举个例子,甚至可以直接读pair数组,直接读树和图等。
fn main() {
    input! {
        n: usize,
        point: [(f64, f64); n],
        q: usize,
        mut g: i64,s z
        a: i64,
        b: i64,
    }

2. 日本Rust选手非常多,一些算法竞赛的库包括proconio都是日本人写的。leetcode最大的问题是你看不到别人提交,就算看到提交/题解也不知道是不是彩笔写的。这点Atcoder就非常方便了。有大量红橙黄名选手(对标leetcode 3300+,3000+,2800+)在使用rust,甚至有世界级别选手,比如https://atcoder.jp/users/sansen。所以做完题目后可以找一些分数高的rust选手翻他们的提交学习。比如今天早上的ABC,就可以直接看他的https://atcoder.jp/contests/abc344/submissions?f.User=sansen 提交学习。当然看别人的也行,Atcoder支持每个题目用语言来筛选提交。
日本人甚至有多本如何用Rust刷题和本地测试的书籍文档
比如https://doc-rust--jp-rs.translat ... en&_x_tr_pto=sc
https://zenn.dev/toga/books/rust-atcoder
写的都非常详细

3. Leetcode少部分题没有Rust支持

4. 面试写rust太作死了。拿来娱乐刷题熟悉语法我觉得问题不大,而且拿rust实现各种数据结构还是挺开心的,比如这个人的https://rsk0315.github.io/library-rs/nekolib/

补充内容 (2024-03-10 12:48 +08:00):

我也在Rust刷题精进中
如果哪天写的比较熟练了可以发一些我自己整理的一些比较Rustacean的写法

评分

参与人数 3大米 +5 收起 理由
Cabbage1123 + 2 很有用的信息!
zea7ot + 2 给你点个赞!
tobebeyond + 1 赞一个

查看全部评分

回复

使用道具 举报

cto 2024-3-9 14:22:05 来自APP | 显示全部楼层
本楼:   👍  3
100%
0%
0   👎
全局:   3620
89%
11%
459
面试官看不懂
回复

使用道具 举报

stevenw 2024-3-10 04:33:41 | 显示全部楼层
本楼:   👍  2
67%
33%
1   👎
全局:   4
80%
20%
1
Sorry I didn't install chinese input method.

I am not an expert in this topic. I plan to focus only on python and RUST going forward. IMO I think it's a matter of time before RUST take the place of C++. Although the time here could be 20+ years.


For scripting language:Python is a defacto standard. If some revolutionary language design shows up, it's going to be a revision in python itself, not a new language like Julia or Carbon.
For performant compiling language: rust is the most promising, the future may not be rust itself, but I don't really see a good future of C++. If I have to pick one now. It's going to be rust.
回复

使用道具 举报

bgilfoyle 2024-3-9 14:59:23 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   212
90%
10%
24
面试官不会你怎么办
回复

使用道具 举报

Cabbage1123 2024-4-21 02:22:04 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   155
100%
0%
0
+1 工作用rust但是刷题用c++,Leetcode感觉很多题没有rust支持耶。

每次刷题的时候都觉得好别扭
回复

使用道具 举报

阵雨 2024-4-21 12:27:21 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   2456
94%
6%
143
替面试官考虑一下吧。。。

以前准备面试的确试过用 go。。。不过效果一般般,现在有 gpt 了其实都差不多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表