AtCoder が提供しているABC(AtCoder Beginner Contest)386 B問題をC++とPythonで解いてみました。ABC386は、2024年12月28日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
B問題 Calculator(Difficulty : 42)
問題の詳細は、リンク先をご覧ください。
文字列 “00” を別の1文字に置換します。AtCoder Problems による Difficulty は 42 でした。
解答案
C++ プログラム例(ABC386B)
文字列 “00” を1文字(この例では ‘a’)に置換します。変換後の文字列の長さが解答となります。文字列の置換は、regex_replace
を使いました。
以下が、C++プログラムです。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
string t = regex_replace(s, regex("00"), "a");
cout << t.length() << endl;
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC386B)
Python版も基本的な考え方は同じです。文字列の置換は、文字列クラスの replace
メソッドを使いました。以下がプログラムです。
"""AtCoder Beginner Contest 386 B"""
s = input()
t = s.replace("00", "a")
print(len(t))
こちらも「AC」と判定されました。
最後に
正規表現による文字列の置換は、ABC286B問題(解説記事)やABC297C問題(解説記事)でも利用しました。何回も使うと慣れてきます。
引き続き ABC の問題を紹介していきます。