string - 互补DNA(C++)
问题描述
任务:根据其模式为新的 Dna 字符串编写代码。就像你知道的那样,在 DNA 字符串中,符号“A”和“T”是互补的,就像“C”和“G”一样。例如:DNA_strand ("ATTGC") //returns "TAACG"
或DNA_strand ("GTAT") //returns "CATA"
我的代码=>
#include <string>
#include <vector>
#include <iostream>
std::string DNAStrand(const std::string& dna)
{
std::string Sym;
std::string c;
std::stringstream s;
s << Sym;
s >> c;
for(int i = 0; i < dna.size() - 1; i++) {
switch (dna[i]) {
case ('A'):
Sym[i] = 'T';
break;
case ('T'):
Sym[i] = 'A';
break;
case ('C'):
Sym[i] = 'G';
break;
case ('G'):
Sym[i] = 'C';
break;
default:
std::cout << "invalid";
} return c.str();
}
int main() {
std::cout << DNAStrand("ATTGC") << "\n"; //retun "TAACG"
std::cout << DNAStrand("GTAT") << "\n"; //retun "CATA"
}
}
解决方案
您已经创建了vector<string>
,但在if
语句中,您将 的元素设置vector
为char
s。你想建立一个string
,而不是一个vector<string>
。
您应该将后续if
语句替换为else if
,或使用switch
语句。满足语句if
之后的 elseif
语句将被不必要地执行。
将其替换vector
为ostringstream。将流命名为s
,您将附加一个char
命名c
为s << c
。在迭代结束时dna
,返回s.str()
。
推荐阅读
- python - 如何附加到 python subdict 数组?
- python - 有没有办法在异常中捕获特定错误?
- lighting - 如何在eevee中实现硬阴影效果?
- javascript - Node.js:将请求选项转换为最终 URL
- javascript - 在 JavaScript 中有一种方法可以对多维数组中的元素进行求和,并根据数组中的其他元素分组
- hadoop - 将 Hadoop `FileStatus` 映射回 URI 基本相对路径
- angular - 如何在不调用订阅方法的情况下重写 rxjs 代码?
- javascript - 在 useEffect 函数中插入“调度”函数作为依赖项是否安全?
- javascript - 如何使用 CURL 命令从 dynamoDB 中删除项目?
- c++ - 用成对向量提升几何区域?