Re: [闲聊] 每日LeetCode

楼主: yam276 ('_')   2023-12-01 10:44:03
※ 引述《ZooseWu (动物园 公告)》之铭言:
: 1662. Check If Two String Arrays are Equivalent
: 给你两个字串阵列
: 回传两个阵列是否表示相同字串
: 把阵列元素按顺序连接在一起之后就是他的字串
: Approach:
: 用join合并之后直接比较
Rust可以直接用concat解:
impl Solution {
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>)
-> bool {
word1.concat() == word2.concat()
}
}
: 推 smart0eddie: 这是不是想考字串比较的function 实作 12/01 10:20
: → ZooseWu: 不清楚 他难度只有easy 12/01 10:31
Rust有一种叫做fold的方法可以串接东西:
impl Solution {
pub fn array_strings_are_equal(word1: Vec<String>, word2: Vec<String>)
-> bool {
let concat1 = word1.iter().fold(String::new(),
|mut acc, word| { acc.push_str(word); acc });
let concat2 = word2.iter().fold(String::new(),
|mut acc, word| { acc.push_str(word); acc });
concat1 == concat2
}
}
fold的闭包输入有一个acc累加器跟一个value
总之透过条件筛选就能用fold取得一个容器里面需要的东西
像是取偶数和可以这样:
pub fn main() {
let even_sum = (1..=10).fold(0,
|acc, num| if num % 2 == 0 { acc + num } else { acc });
println!("{even_sum:?}");
}
作者: wwndbk (黑人问号)   2023-12-01 10:50:00
大师
作者: ZooseWu (N5)   2023-12-01 10:51:00
rust是不是也是一个对FP支援程度很高的语言阿
楼主: yam276 ('_')   2023-12-01 10:51:00
应该吧 这语言用很前卫的皮套很低层的东西像光是match就能玩一堆东西

Links booklink

Contact Us: admin [ a t ] ucptt.com