String 互补DNA(C+;+;)
任务:根据新的Dna字符串的模式为其编写代码。正如你所知,在DNA字符串中,符号“A”和“T”是彼此的补充,如“C”和“G”。 例如:String 互补DNA(C+;+;),string,dna-sequence,String,Dna Sequence,任务:根据新的Dna字符串的模式为其编写代码。正如你所知,在DNA字符串中,符号“A”和“T”是彼此的补充,如“C”和“G”。 例如:DNA链(“ATTGC”)//返回“TAACG”或DNA链(“GTAT”)//返回“CATA” 我的代码=> #include <string> #include <vector> #include <iostream> std::string DNAStrand(const std::string& dna) {
DNA链(“ATTGC”)//返回“TAACG”
或DNA链(“GTAT”)//返回“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"
}
}
#包括
#包括
#包括
std::string DNAStrand(const std::string&dna)
{
std::字符串符号;
std::字符串c;
std::strings;
s>c;
对于(int i=0;i std::cout您已经创建了一个向量
,但是在if
语句中,您正在将向量
的元素设置为字符
s。您想要构建的是字符串
,而不是向量
您应该将后续的if
语句替换为else if
,或者使用开关
语句。否则,在满足if
语句之后的if
语句将不必要地执行
将此向量
替换为一个。将流命名为s
,您将用s追加一个名为c
的字符。您的问题是什么?此代码在运行时会做什么?为什么会出错?显示示例输入、所需输出和当前输出;完整解释问题;完整引用错误消息。如何处理我用一个ostringstream替换向量吗?我很困惑little@PooryaKeshavarzi您正在将字符设置为字符串向量的元素。请删除该向量,并将字符推送到ostringstream。然后通过调用.str()获得结果在ostringstream上。我更新了我的问题。告诉我要更改什么。如果您想使用它,请阅读字符串和ostringstream的文档。如果您想预分配字符串,则需要使用正确的大小初始化它。