最长回文子串 处理顺序

处理点(i, j)需保证点(i+1, j-1)状态已确定,即左下角的点
那么有两种处理顺序,
1、从左下角到右上角
在这里插入图片描述
2、从左上角到右下角
在这里插入图片描述
这种方式代码实现简单一些,
代码1:

int i=0, j=2;
while(j-i<N){
    
    
	int x=i, y=j;
	while(y<N){
    
    
		//状态转移方程(x, y)
		x++;
		y++;
	}
	j++;
}

代码2:串长角度,从3开始,处理到串长N

for(int L=3; L<=N; L++){
    
    
	for(int i=0; i+L-1<N; i++){
    
    
		int j=i+L-1;
		//状态转移方程(i, j)
	}
}

猜你喜欢

转载自blog.csdn.net/sinat_37517996/article/details/104576354