关注
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string f(const string& str, int cur, int len, int minLen)
{
int m = 1;
string s = str.substr(cur, len);
//cout << s << endl;
for (int i = len + cur; i <= str.size()-len; i += len)
{
string tmp = str.substr(i, len);
//cout << tmp << endl;
if (s != tmp)
break;
++m;
}
int ret = str.size() - m*len + len + 3;
if (ret < minLen)
{
string tt(str.begin(), str.begin() + cur);
tt += to_string(m);
tt += '[';
tt += s;
tt += ']';
string tmp(str.begin() + cur + m*len, str.end());
tt += tmp;
return tt;
}
else
return "";
}
int main()
{
string str;
cin >> str;
int len = str.size();
if (len < 5)
{
cout << len << endl;
return 0;
}
int cur = 0;
int ret = len;
string newStr = str;
while (true)
{
bool changed = false;
for (int cur = 0; cur < str.size() - 4; ++cur)
{
//i位子串的长度
for (int i = 1; i <= str.size() / 2; ++i)
{
//cout << f(str, cur, i) << endl;
string ff = f(str, cur, i, ret);
if (ff != "")
{
ret = ff.size();
newStr = ff;
changed = true;
}
}
}
str = newStr;
if (!changed || str.size() < 5)
break;
}
cout << ret << endl;
}
查看原帖
点赞 5
相关推荐
牛客热帖
更多
正在热议
更多
# 如何准备秋招 #
8495次浏览 150人参与
# 软开人,秋招你打算投哪些公司呢 #
100368次浏览 941人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
21228次浏览 181人参与
# 你觉得实习能学到东西吗 #
12318次浏览 301人参与
# 秋招什么时候开投比较合适? #
5075次浏览 110人参与
# 实习,不懂就问 #
24175次浏览 369人参与
# 每个月的工资都是怎么分配的? #
11921次浏览 272人参与
# 你觉得现在还能进互联网吗? #
3872次浏览 91人参与
# 技术岗笔试题求解 #
75271次浏览 974人参与
# 预测一下26届秋招形势 #
19772次浏览 207人参与
# 你最近一次加班是什么时候? #
67587次浏览 346人参与
# 高考出分的那一天,我__ #
13772次浏览 230人参与
# 打工人的精神状态 #
53200次浏览 966人参与
# 米哈游工作体验 #
17502次浏览 116人参与
# 机械实习一天多少钱合适? #
28678次浏览 176人参与
# 你觉得实习只能是打杂吗? #
191964次浏览 1211人参与
# 聊聊你的职场新体验 #
161103次浏览 1389人参与
# 来聊聊你认为的薪资天花板是哪家? #
30656次浏览 174人参与
# 安利/避雷我的专业 #
75802次浏览 522人参与
# 牛客十周岁生日快乐 #
144801次浏览 1609人参与
# 你们公司几号发工资 #
18667次浏览 116人参与