STring
問題
A – STring
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…
記録
- 2022/3/4 解法通りではない方法でAC。
解法
- 文字列を先頭から見ていく。
S
の回数を数える。T
の回数を数える。
その時にそれまでに数えたS
の回数が \(0\) のとき答えを \(1\) 増やす。
それまでに数えたS
の回数が \(0\) 超のときはS
の回数を \(1\) 減らす。- 答えの \(2\) 倍を出力する。
コード例
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll = long long; using P = pair<int, int>; #define rep(i, n) for(int i = 0; i < (n); ++i) // using mint = modint998244353; // using mint = modint1000000007; // const int mod = 1000000007; // const ll INF = 1LL << 60; // const int INF = 1001001001; int main() { string X; cin >> X; int n = X.size(); int cnt = 0; int ans = 0; rep(i, n) { if(X[i] == 'S') { cnt++; } else { if(cnt == 0) { ans++; } else { cnt--; } } } cout << ans * 2 << endl; return 0; }