0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【ログ】ABC 122 B - ATCoder

Posted at

問題文

英大文字からなる文字列 S が与えられます。S の部分文字列 (注記を参照) であるような最も長い ACGT 文字列 の長さを求めてください。
ここで、ACGT 文字列とは A, C, G, T 以外の文字を含まない文字列です。

入力と出力

S

S の部分文字列であるような最も長い ACGT 文字列の長さを出力せよ。

ACコード

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

int main() {
    string s;
    cin >> s;
    int counter = 0;
    int maxcnt = 0;

    rep(i, s.size()){
// ACCTのいずれかに該当した場合、counter++
        if(s.at(i) == 'A' || s.at(i) == 'C' || s.at(i) == 'G' || s.at(i) == 'T') {
            counter++;
//最大数と現ループのcounterの数比較
            maxcnt = max(counter, maxcnt);

        } else {
            counter = 0;
        }
    }

    cout << maxcnt << endl;
}

学んだこと

全探索で最大数を求める時はcounterと比較をして、大きい方を保存するmaxcntなどの変数を用意するとよい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?