寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C++ #Volume5 - 0555 : 指輪 (Ring)

Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。

・問題: 『指輪 (Ring)』

onlinejudge.u-aizu.ac.jp
あなたは N 個の指輪を持っている.
どの指輪にも,アルファベットの大文字 10 文字からなる文字列が刻印されている.
指輪には文字列の最初と最後がつながった形で文字が刻印されている.
指輪に刻印された文字列を逆順に読む心配はない.

探したい文字列が与えられたとき,その文字列を含む指輪が何個あるかを求めるプログラムを作成せよ.

僕が作成、提出したコードは、以下のとおりです。

Aizu Online Judge in C++ #Volume5 - 0555 : 指輪 (Ring)
/*
Aizu Online Judge in C++ #Volume5 - 0555 : 指輪 (Ring)
https://onlinejudge.u-aizu.ac.jp/problems/0555
 提出コードの解答例
 https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  string s;
  int n;
  cin>>s>>n;
  int cnt=0;
  vector<string> vs(n);
  for(int i=0;i<n;i++){
    cin>>vs[i];
    vs[i].insert(vs[i].size(),vs[i]);
    if(vs[i].find(s)!=string::npos){
      cnt++;
    }
  }
  cout<<cnt<<endl;
  return 0;
}

設問の出典は、第10回日本情報オリンピック 予選(過去問)です。
問題は、AtCoder Problemsでも公開されています。
atcoder.jp