题意是给一个字符串,可以复制某一段字符,问最少需要多少步能将其输出,比如abcabcd,先输入abc然后再赋值abc再输入d就只需要5步。

      这里需要用到substr函数,这是一个字符串截取函数,substr(a,b),相当于在a位置开始截取b个字符。


AC代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
  int n;
  cin>>n;
  int ans = n;
  string str;
  cin>>str;
  for(int i=1;i<=n/2;i++){
    if(str.substr(0,i) == str.substr(i,i)) ans = n - i + 1;
  }
  printf("%d\n",ans);
  return 0;
}