题解 1826: 蓝桥杯2015年第六届真题-切开字符串

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯2015年第六届真题-切开字符串 (C++代码)---substr的简单枚举和map去重

解题思路:1.先枚举前后串的分割情况,每枚举出一种情况就分别对前串和后串进行处理2.处理过程:计算前串的子串正回文个数,计算后串的子串不是正回文的个数(注意:后串的子串只要不符合正回文都算一种情况,即它可以是非回文,可以是偶数长度回文。处理的时候我们只需要用一个check函数检测是不是正回文,

蓝桥杯2015年第六届真题-切开字符串-题解(C++代码)

注意事项:看了个题解兄弟恍然大悟,我也理解错了,后串不是要偶数串,随便什么串都行,仅仅是非奇数回文,然后思路就是string的substr切割,set除从,输出最大长度就行。参考代码:#includeusingnamespacestd;boolfx(stringa){in

蓝桥杯2015年第六届真题-切开字符串-题解(C++代码)

解题思路:先扫描一遍字符串中包含的正回文字符串和非正回文字符串,使用map存储来实现字符串去重。每个正回文字符串标记出子字符串末尾所在的位置,存在重复只需保留最靠近左边的字符串每个非正回文字符串标记出子字符串起始所在位置,存在重复只需保留最靠近右边的字符串(map中用负数值表示)标记后将子字符串位置与

蓝桥杯2015年第六届真题-切开字符串-题解(C++代码)

###解题思路:先从左往右处理出下标i前的正回文子串数量,再从右往左处理出下标i后的非正回文子串的数量,最后两个数组相乘就得处答案。###PS:非正回文子串分两种:1、长度为偶数的子串;2、长度为奇数的非回文子串```cpp#include#definexfirst#defineysecond#def

蓝桥杯2015年第六届真题-切开字符串-题解(C++代码)使用set进行去重

####注意事项:坑点一:后半段的非正回文子串是包括除正回文子串以外的所有情况也就是说**非正回文子串包含**:*不是回文*是回文但它的长度为偶数坑点二:前一段中有A个**不相同**的正回文子串,后一段中有B个**不相同**的非正回文子串**注意是不相同**。

蓝桥杯2015年第六届真题-切开字符串c++使用string与map进行求解

解题思路:首先题目要求的是将字符串任意切割成两半(且两半都不能为空,说实话有一半都是空的那其实也没切对吧),然后在前一部分寻找正回文子串(长度为奇数的回文串,注意这里包括1个字符的子串)并统计下来,后一部分寻找“非正回文子串”(实际上就是所有偶数的子串加上所有奇数的非回文子串)并统计下来,