题解 | #DNA序列#
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
#include <iostream>
#include <string>
using namespace std;
class DNASequence {
private:
//DNA序列
string s;
//所需字串长度
int n;
public:
//构造函数
DNASequence(const string s, const int n);
//析构函数
~DNASequence();
//找出子串
const string search(void)const;
//统计字符串s中C和G的总数
const int count(const string s)const;
};
DNASequence::DNASequence(const string s, const int n) {
this->s = s;
this->n = n;
return;
}
DNASequence::~DNASequence() {
}
const string DNASequence::search(void) const {
string s1;
int num = 0;
//比较所有长度符合的子串
for (int i = 0; i <= this->s.size() - this->n; i++) {
string si = this->s.substr(i, this->n);
int ni = this->count(si);
if (ni > num) {
s1 = si;
num = ni;
}
}
return s1;
}
const int DNASequence::count(const string s) const {
int num = 0;
//遍历字符串
for (char ch : s)
if ((ch == 'C') || (ch == 'G'))
num++;
return num;
}
int main() {
string a;
int b;
while (cin >> a >> b) { // 注意 while 处理多个 case
cout << DNASequence(a, b).search() << endl;
}
}
// 64 位输出请用 printf("%lld")
查看24道真题和解析

SHEIN公司福利 903人发布