27、<简单>国王的魔镜

27、<简单>国王的魔镜 #include iostream #include string #include algorithm using namespace std; int main() { cout 功能说明输入最终项链字符串求出原始项链最小长度 endl; cout 输入规则仅大写英文字母字符串长度不超过100 endl; cout 请输入最终项链字符串; string s; cin s; // 循环逆向拆分只要当前字符串长度是偶数且后半段等于前半段反转就缩小一半 while (true) { int len s.size(); // 长度奇数无法再拆分退出循环 if (len % 2 ! 0) break; int half len / 2; string front s.substr(0, half); string back s.substr(half, half); // 翻转前半段 reverse(front.begin(), front.end()); // 后半段 前半段反转说明可以拆分成更小的原始串 if (front back) { s s.substr(0, half); } else { break; } } cout \n原始项链最小长度 s.size() endl; return 0; }