#include <iostream> #include <string> using namespace std; string helper(string str) {  if (str.size() <= 4) {   return str;  }  for (int i = 0; i < str.size(); ++i) {   for (int j = str.size() - 1; j > i; --j) {    if (str[j] != str[i]) continue;    int k = 0;    while (j + k < str.size() && str[i + k] == str[j + k]) ++k;    string base = str.substr(i, k);    int len = j - i;    if (len % k != 0) continue;    int num = len / k + 1;    if (3 + k >= j - i + k) continue;    int n = num - 1;    while (--n) {     if (base == str.substr(i + n*k, k)) continue;     else break;    }    if (n != 0) continue;    else {     string res = str.substr(0, i);     string numstr = to_string(num);     res += numstr;     res += '[';     string next = helper(base);     res += next;     res += ']';     res += str.substr(j + k);     return res;    }   }  } } int main() {  string str;  cin >> str;  if (str.size() <= 4) {   cout << str.size() << endl;   return 0;  }  cout << helper(str).size() << endl;  system("pause");  return 0; }
点赞 3

相关推荐

昨天 16:39
北华大学 培训师
点赞 评论 收藏
分享
头发暂时没有的KFC总裁:找廉价劳动力罢了
点赞 评论 收藏
分享
牛客网
牛客企业服务