变形的求最大回文子串,要求输出两个端点。
我觉得把'b'定义为真正的'a'是件很无聊的事,因为这并不会影响到最大回文子串的长度和位置,只是在输出的时候设置了一些不必要的障碍。
另外要注意一下原字符串s1中的字符在预处理以后的字符串s2中对应的坐标关系,这样输出的时候就可以照着这个关系转化。
轻松1A,嘿嘿
1 //#define LOCAL 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 using namespace std; 6 7 const int maxn = 200000 + 20; 8 char s1[maxn], s2[maxn * 2], real; 9 int p[maxn * 2]; 10 11 void init(char s1[], char s2[]) 12 { 13 int j = 2; 14 s2[0] = '$', s2[1] = '#'; 15 for(int i = 0; s1[i] != '