pyhaya’s diary

プログラミング、特にPythonについての記事を書きます。Djangoや機械学習などホットな話題をわかりやすく説明していきたいと思います。

AtCoder Beginners Contest (ABC) 002 C: 罠 を解いた

AtCoder Beginners Contest,通称ABCを解いてそれを解説します。自分も競技プログラミングは初心者なので、簡単な問題をわかりやすく解説していこうと思います。

もしよかったらTwitterフォローお願いします。

問題文

神の恵みで財産を築いた高橋くんですが、なんとそこには罠がありました。神は、高橋くんの発した言葉から母音 a、i、u、e、o を全て盗んでいったのです。高橋くんが発した言葉を表す文字列 W が与えられるので、周囲の人が聞く言葉を表す文字列を出力するプログラムを書いてください。

入力値は

  • 1\leq |W|\leq 30
  • Wは半角英小文字のみからなる
  • Wは少なくとも1つの母音以外の文字を含む

解法(Python3)

難易度は低く、文字列操作の良い練習問題になると思います。
文字を1つずつ確かめていって、母音なら除去、それ以外なら残すというようにしていけばOKです。

W = input()    #入力値を受け取る
result = ""
for w in W:
    if w not in ["a", "i", "u", "e", "o"]:
        result += w

print(result)

解法(C++14)

#include <iostream>
#include <algorithm>
#include <string>
#include <regex>
using namespace std;

int main() {
	string s;
	cin >> s;

	cout << regex_replace(s, regex("[aiueo]"), "") << endl;
}

C++のほうは、Pythonとは異なり、正規表現を利用しています。aiueoどれかに一致すれば空文字に置き換える処理をしています。