Rust: codewars的DNA to RNA Conversion

30 篇文章 0 订阅

算法
dna_to_rna(“GCAT”) //=> “GCAU”
即把输入字符T转成U,或相反。

这题非常容易,但放在这儿,主要是想提示一下,rust有两种模式的解法。

非replace模式:
1、

fn dna_to_rna(dna: &str) -> String {
  dna.chars().map(|c| match c {'T' => 'U', k => k}).collect()
}

2、

fn dna_to_rna(dna: &str) -> String {
  dna.split("T").collect::<Vec<&str>>().join("U")
}

3、

fn dna_to_rna(dna: &str) -> String {
    dna.chars()
        .into_iter()
        .map(|x| match x {
            'T' => return "U".to_string(),
            'U' => return "T".to_string(),
            _ => return x.to_string(),
        })
        .collect::<Vec<String>>()
        .concat()

}

replace模式

1、

fn dna_to_rna(dna: &str) -> String {
 dna.replace("T", "U")
}

2、

fn dna_to_rna(dna: &str) -> String {
   str::replace(dna, "T", "U").to_string()
}

3、

fn dna_to_rna(dna: &str) -> String {
  dna.to_string().replace("T", "U")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值