PTA L2-008 最長對稱子串 團體程序設計天梯賽(C++ AC代碼)

分別判斷最長對稱子串的長度爲偶數和奇數的情況;

#include <bits/stdc++.h>
using namespace std;
int main(){
	string str;
	getline(cin,str);
	int maxlen = 0;
	for(int i = 0;i < str.length();i++){
		//假設最長對稱子串長度爲奇數,最小長度爲1
		int temp = 1;
		for(int j = 1;j < str.length();j++){
			if(i - j < 0 || i + j >= str.length() || str[i+j] != str[i-j]){								
				break;	
			}				
			temp = j*2 + 1;
		}
		maxlen = max(maxlen,temp);
		//假設最長對稱子串長度爲偶數,最小長度爲0
		temp = 0;
		for(int j = 1;j < str.length();j++){
			if(i - j + 1 < 0 || i + j >= str.length() || str[i+j] != str[i-j+1]){			
				break;	
			}
			temp = j*2;
		}
		maxlen = max(maxlen,temp);
	}
	cout<<maxlen<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章