关注
#include<memory> #include<string> #include<iostream> #include<vector> using namespace std; int code(string s) { if (s.size() < 4) return s.size(); vector<pair<string, int>> k; for (size_t i = 1; i <= s.size() / 2; i++) { string tmp(s.begin(), s.begin() + i); k.push_back(make_pair(tmp, 1)); } for (auto it = k.begin(); it != k.end(); it++) { size_t len = (it->first).size(); for (size_t m = len; m+len<s.size()+1; m += len) { string tmp(s.begin() + m, s.begin() + m + len); if (it->first == tmp) it->second++; else break; } } auto max_index = k.end(); size_t max = 0; for (auto it = k.begin(); it != k.end(); it++) { if (it->second >= 2) { size_t len = ((it->first).size())*(it->second); if (len > max && (len > (it->first).size() + 3)) { max_index = it; max = len; } } } if (max_index != k.end()) { string tmp(s.begin() + max, s.end()); return (code(max_index->first) + 3 + code(tmp)); } else { string tmp(s.begin() + 1, s.end()); return (1 + code(tmp)); } return s.size(); } int main() { string in; cin >> in; cout << code(in); return 0; }
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 技术岗笔试题求解 #
77594次浏览 1005人参与
# 拼多多求职进展汇总 #
642344次浏览 4983人参与
# 工作一周年分享 #
30698次浏览 179人参与
# 如果公司给你放一天假,你会怎么度过? #
16249次浏览 122人参与
# 作业帮求职进展汇总 #
55758次浏览 370人参与
# 华子oc时间线 #
1236418次浏览 6473人参与
# OPPO求职进展汇总 #
662176次浏览 5032人参与
# 总结:哪家公司面试体验感最差 #
60475次浏览 273人参与
# 职场上哪些事情令人讨厌 #
18719次浏览 91人参与
# 三一重工求职进展汇总 #
14313次浏览 65人参与
# 去年你投递实习了吗? #
21991次浏览 329人参与
# 这些公司卡简历很严格 #
41287次浏览 204人参与
# 扒一扒那些奇葩实习经历 #
66306次浏览 913人参与
# 经纬恒润求职进展汇总 #
121666次浏览 1032人参与
# 提前批过来人的忠告 #
113858次浏览 1194人参与
# 说说你知道的学历厂 #
58378次浏览 351人参与
# 秋招最大的收获是什么? #
36871次浏览 311人参与
# 找工作时的取与舍 #
80011次浏览 566人参与
# 你认为小厂实习有用吗? #
29311次浏览 341人参与
# 哪一瞬间觉得自己长大了 #
13908次浏览 327人参与