#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

相关推荐

10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
牛客网
牛客企业服务