SRM604 Div2Easy - FoxAndWord
解法
二つの文字列を選んで、そのうち一つの区切る位置を決めて反転させる。これと他方の文字列が一致したらカウントする。
#include<bits/stdc++.h> using namespace std; // rep #define REP(i,a,b) for(int i=a;i<b;i++) #define rep(i,n) REP(i,0,n) class FoxAndWord { public: int howManyPairs(vector <string> words) { int result = 0; rep(i, words.size()-1) { REP(j, i+1, words.size()) { REP(k, 1, words[i].size()) { string sl = words[i].substr(0, k); string sr = words[i].substr(k); if(sr+sl == words[j]) { result ++; break; } } } } return result; } };