TCO11 Round1 Easy(250) TripleStrings

TripleStrings

init[k..n-1] == goal[0..n-k-1] ならば、init[0..k-1]のうちoをBにxをCに振り分けることで、2kでgoalにできる。oxxox → ooxxo のように答えが2nになる場合もある。

#include <string>
using namespace std;

class TripleStrings{public:
int getMinimumOperations( string init, string goal )
{
    int n = (int)init.size();
    for ( int i=0; i<n; i++ )
        if ( init.substr(i) == goal.substr(0,n-i) )
            return 2*i;
    return 2*n;
}};