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

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

筛选

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

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

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

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

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

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

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

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

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

1.正回文子串:奇数,且回文数;2.非正回文子串:偶数的回文子串,或不是回文子串;3.整体把握:在for循环的状态下,首先将字符串s利用substr()分割两个子字符串a,b;a作为前串需求解其正回文子串个数,b作为后串求解其非正回文子串;然后分别将a字符串分割成各个字符串,

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

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

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

思路:正回文子串是长度为奇数的回文子串,它的条件有两个,一是字符串必须是回文串,二是长度为奇数。非正回文子串,也有两种情况,一是根本不是回文串,二是长度为偶数的回文串。从左到右遍历,记录下每个位置的正回文子串的个数从右到左遍历,记录每个位置的非正回文子串的个数用两个数组分别记录每个位置的正回文子串和非