#![allow(non_snake_case)]
fn longestPalindromeSubstring(str : String) -> usize {
let len = str.len();
let mut longestLength = 1;
let mut start = 0;
{
let mut i = 0;
while i < len {
let mut j = i;
while j < len {
let mut palindrome = 1;
{
let mut k = 0;
while k < (j - i + 1) / 2 {
if str.chars().nth(i + k).unwrap() != str.chars().nth(j - k).unwrap() {
palindrome = 0;
}
k += 1;
}
}
if palindrome != 0 && (j - i + 1) > longestLength {
start = i;
longestLength = j - i + 1;
}
j += 1;
}
i += 1;
}
print!("Longest palindrome substring = ");
{
let mut i = start;
while i <= start + longestLength - 1 {
print!("{}",str.chars().nth(i).unwrap());
i += 1;
}
}
print!("{}","\n".to_string());
}
return longestLength;
}
fn main() {
let str : String = "qabcbaproggorpxyyxzv".to_string();
let result = longestPalindromeSubstring(str);
print!("Length palindrome substring length = {}", result);
}
/*
run:
Longest palindrome substring = proggorp
Length palindrome substring length = 8
*/