SRM 518 Div2 Easy TwiceString

入力文字列sが部分文字列として2回出現する最小の文字列を求めよという問題.

最小周期pを求め,s[0:p-1] + sを返す.

class TwiceString
{
public:
  string getShortest(string s)
    {
      int n = s.size();
      int i;
      for(i = 1; i < n; i++){
        if (s.substr(i, n-i) == s.substr(0,n-i)) return (s.substr(0,i) + s);
      }
      return s+s;
    }
};