TakahiroNakamori

TakahiroNakamori

中森崇博(ナカモリタカヒロ)

11 /
29
2021
 

Remove One Character

問題

A – Remove One Character
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…

ポイント

  1. 条件を満たす文字列と条件を満たさない文字列の例は下図の通り。
  2. 文字列 \(S\) について、 \(i\) 文字目から同じ文字が \(k\) 文字目まで同じ場合、 \( {}_{i-k+1}C_{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() {
  int N;
  cin >> N;
  string S;
  cin >> S;

  ll ans = 0;
  ll cnt = 0;
  for(int i = 1; i < N; ++i) {
    if(S[i] == S[i - 1]) {
      cnt++;
      ans += cnt;
    } else {
      cnt = 0;
    }
  }

  cout << ans << endl;
  return 0;
}