部分文字列の全探索(キーエンス プログラミング コンテスト 2019 B - KEYENCE String)
部分文字列の抜き出しの仕方が分からなくて困った時に見返すようでメモ。 この解説動画がめちゃくちゃ分かりやすい
問題はこちら
コード
#include <bits/stdc++.h> using namespace std; // 変数宣言------------------ string s; // メイン------------------ int main() { // デバッグ用 ifstream in("input.txt"); if (in.is_open()) { cin.rdbuf(in.rdbuf()); } cin >> s; int n = s.size(); bool ans = false; // i → 何番目から抜き出すか? // j → 何番目まで抜き出すか?(jを含まない) for (int i = 0; i <= n; i++) { for (int j = i; j <= n; j++) { string t = s.substr(0, i) + s.substr(j); if (s == t) { ans = true; } } } cout << (ans ? "YES" : "NO") << endl; }