2019-07-28
AtCoder Beginner Contest 132 A
最初に書いたコード
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
string s;
cin >> s;
vector <int> v(4);
for (int i = 0; i < s.length(); i++) {
v[i] = s[i];
}
sort(v.begin(), v.end());
string ret;
if (v[0] == v[1] && v[1] != v[2] && v[2] == v[3]) ret = "Yes";
else ret = "No";
cout << ret << endl;
}
他の回答を見て修正したコード
std::sort は string に対してもつかえる。 (string もベースは配列なので当然か。)
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main() {
string s;
cin >> s;
sort(s.begin(), s.end());
string ret;
ret = (s[0] == s[1] && s[1] != s[2] && s[2] == s[3]) ? "Yes" : "No";
cout << ret << endl;
}
学んだこと
- std::vector というのは可変長配列を表現するクラス
- vector というヘッダファイルを include することで使用可能になる。
- 以下の形で宣言する。
vector <要素の型> vct(配列のサイズ);
vector <要素の型> vct{要素1 要素2 要素3};
- 可変長配列の他にもリスト、キューなどのデータ構造を表現するクラステンプレートが存在し、コンテナと呼ばれる。
- algorithm というヘッダファイルを include すると、std::sort などの関数がつかえる。