# Longest palindromic substring solution

Here given code implementation process.

``````/*
C program for
Longest palindromic substring solution
*/
#include <stdio.h>
#include <string.h>

// Returns length of palindrome in given indexes
int palindromeLength(char *text, int l, int r, int n)
{
int low = l;
int high = r;
int count = 0;
while (low >= 0 && high < n && text[low] == text[high])
{
// When palindrome pairs exist
count += 2;
// Change position
low--;
high++;
}
return count;
}
void findLPSS(char *text)
{
// Get the length of given text
int n = strlen(text);
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
int length = 1;
// Auxiliary variables
int start = 0;
int a = 0;
int b = 0;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for (int i = 1; i < n; ++i)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
}
// Display given text
printf("\n Given string : %s", text);
printf("\n Result : ");
// Display resultant palindrome
for (int i = start; i <= start + length - 1; ++i)
{
printf("%c", text[i]);
}
// Display length of resultant palindrome
printf("\n Resultant length : %d", length);
}
int main(int argc, char const *argv[])
{
// Test
// iiii
findLPSS("itiiiigi");
// ivfvi
findLPSS("vvvvivfvim");
// civic
findLPSS("xyzacivicxrs");
// opo
findLPSS("ttoopo");
return 0;
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````// Java program for
// Longest palindromic substring solution
public class LongestPalindrome
{
// Returns length of palindrome in given indexes
public int palindromeLength(String text, int l, int r, int n)
{
int low = l;
int high = r;
int count = 0;
while (low >= 0 && high < n &&
text.charAt(low) == text.charAt(high))
{
// When palindrome pairs exist
count += 2;
// Change position
low--;
high++;
}
return count;
}
public void findLPSS(String text)
{
// Get the length of given text
int n = text.length();
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
int length = 1;
// Auxiliary variables
int start = 0;
int a = 0;
int b = 0;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for (int i = 1; i < n; ++i)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
}
// Display given text
System.out.print("\n Given string : " + text);
System.out.print("\n Result : ");
// Display resultant palindrome
for (int i = start; i <= start + length - 1; ++i)
{
System.out.print(text.charAt(i));
}
// Display length of resultant palindrome
System.out.print("\n Resultant length : " + length);
}
public static void main(String[] args)
{
// Test
// iiii
// ivfvi
// civic
// ttoopo
}
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````// Include header file
#include <iostream>
#include <string>

using namespace std;
// C++ program for
// Longest palindromic substring solution
class LongestPalindrome
{
public:
// Returns length of palindrome in given indexes
int palindromeLength(string text, int l, int r, int n)
{
int low = l;
int high = r;
int count = 0;
while (low >= 0 && high < n && text[low] == text[high])
{
// When palindrome pairs exist
count += 2;
// Change position
low--;
high++;
}
return count;
}
void findLPSS(string text)
{
// Get the length of given text
int n = text.length();
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
int length = 1;
// Auxiliary variables
int start = 0;
int a = 0;
int b = 0;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for (int i = 1; i < n; ++i)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = this->palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = this->palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
}
// Display given text
cout << "\n Given string : " << text;
cout << "\n Result : ";
// Display resultant palindrome
for (int i = start; i <= start + length - 1; ++i)
{
cout << text[i];
}
// Display length of resultant palindrome
cout << "\n Resultant length : " << length;
}
};
int main()
{
// Test
// iiii
// ivfvi
// civic
// opo
return 0;
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````// Include namespace system
using System;
// Csharp program for
// Longest palindromic substring solution
public class LongestPalindrome
{
// Returns length of palindrome in given indexes
public int palindromeLength(String text, int l, int r, int n)
{
int low = l;
int high = r;
int count = 0;
while (low >= 0 && high < n && text[low] == text[high])
{
// When palindrome pairs exist
count += 2;
// Change position
low--;
high++;
}
return count;
}
public void findLPSS(String text)
{
// Get the length of given text
int n = text.Length;
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
int length = 1;
// Auxiliary variables
int start = 0;
int a = 0;
int b = 0;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for (int i = 1; i < n; ++i)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = this.palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = this.palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
}
// Display given text
Console.Write("\n Given string : " + text);
Console.Write("\n Result : ");
// Display resultant palindrome
for (int i = start; i <= start + length - 1; ++i)
{
Console.Write(text[i]);
}
// Display length of resultant palindrome
Console.Write("\n Resultant length : " + length);
}
public static void Main(String[] args)
{
// Test
// iiii
// ivfvi
// civic
// opo
}
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````package main
import "fmt"
// Go program for
// Longest palindromic substring solution

// Returns length of palindrome in given indexes
func palindromeLength(text string, l int, r int, n int) int {
var low int = l
var high int = r
var count int = 0
for (low >= 0 && high < n && text[low] == text[high]) {
// When palindrome pairs exist
count += 2
// Change position
low--
high++
}
return count
}
func findLPSS(text string) {
// Get the length of given text
var n int = len(text)
if n == 0 {
return
}
// Every single character is form of palindrome.
// So set result length is 1.
var length int = 1
// Auxiliary variables
var start int = 0
var a int = 0
var b int = 0
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for i := 1 ; i < n ; i++ {
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = palindromeLength(text, i - 1, i + 1, n) + 1
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = palindromeLength(text, i - 1, i, n)
if b > a {
// Select largest
a = b
}
if a > length {
// Change resultant length
length = a
start = i - (a / 2)
}
}
// Display given text
fmt.Print("\n Given string : ", text)
fmt.Print("\n Result : ")
// Display resultant palindrome
for i := start ; i <= start + length - 1 ; i++ {
fmt.Print(string(text[i]))
}
// Display length of resultant palindrome
fmt.Print("\n Resultant length : ", length)
}
func main() {

// Test
// iiii
findLPSS("itiiiigi")
// ivfvi
findLPSS("vvvvivfvim")
// civic
findLPSS("xyzacivicxrs")
// opo
findLPSS("ttoopo")
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````<?php
// Php program for
// Longest palindromic substring solution
class LongestPalindrome
{
// Returns length of palindrome in given indexes
public	function palindromeLength(\$text, \$l, \$r, \$n)
{
\$low = \$l;
\$high = \$r;
\$count = 0;
while (\$low >= 0 && \$high < \$n && \$text[\$low] == \$text[\$high])
{
// When palindrome pairs exist
\$count += 2;
// Change position
\$low--;
\$high++;
}
return \$count;
}
public	function findLPSS(\$text)
{
// Get the length of given text
\$n = strlen(\$text);
if (\$n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
\$length = 1;
// Auxiliary variables
\$start = 0;
\$a = 0;
\$b = 0;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for (\$i = 1; \$i < \$n; ++\$i)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
\$a = \$this->palindromeLength(\$text, \$i - 1, \$i + 1, \$n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
\$b = \$this->palindromeLength(\$text, \$i - 1, \$i, \$n);
if (\$b > \$a)
{
// Select largest
\$a = \$b;
}
if (\$a > \$length)
{
// Change resultant length
\$length = \$a;
\$start = \$i - ((int)(\$a / 2));
}
}
// Display given text
echo("\n Given string : ".\$text);
echo("\n Result : ");
// Display resultant palindrome
for (\$i = \$start; \$i <= \$start + \$length - 1; ++\$i)
{
echo(\$text[\$i]);
}
// Display length of resultant palindrome
echo("\n Resultant length : ".\$length);
}
}

function main()
{
// Test
// iiii
// ivfvi
// civic
// opo
}
main();``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````// Node JS program for
// Longest palindromic substring solution
class LongestPalindrome
{
// Returns length of palindrome in given indexes
palindromeLength(text, l, r, n)
{
var low = l;
var high = r;
var count = 0;
while (low >= 0 && high < n &&
text.charAt(low) == text.charAt(high))
{
// When palindrome pairs exist
count += 2;
// Change position
low--;
high++;
}
return count;
}
findLPSS(text)
{
// Get the length of given text
var n = text.length;
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
var length = 1;
// Auxiliary variables
var start = 0;
var a = 0;
var b = 0;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
for (var i = 1; i < n; ++i)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = this.palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = this.palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (parseInt(a / 2));
}
}
// Display given text
process.stdout.write("\n Given string : " + text);
process.stdout.write("\n Result : ");
// Display resultant palindrome
for (var i = start; i <= start + length - 1; ++i)
{
process.stdout.write(text.charAt(i));
}
// Display length of resultant palindrome
process.stdout.write("\n Resultant length : " + length);
}
}

function main()
{
// Test
// iiii
// ivfvi
// civic
// opo
}
main();``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````#  Python 3 program for
#  Longest palindromic substring solution
class LongestPalindrome :
#  Returns length of palindrome in given indexes
def palindromeLength(self, text, l, r, n) :
low = l
high = r
count = 0
while (low >= 0 and high < n and text[low] == text[high]) :
#  When palindrome pairs exist
count += 2
#  Change position
low -= 1
high += 1

return count

def findLPSS(self, text) :
#  Get the length of given text
n = len(text)
if (n == 0) :
return

#  Every single character is form of palindrome.
#  So set result length is 1.
length = 1
#  Auxiliary variables
start = 0
a = 0
b = 0
i = 1
#  Find the max length palindrome.
#  Execute loop from 1 to n-1.
while (i < n) :
#  Case A
#  Use to maintain order of left and right elements.
#  i is center point.
#  r consider right side boundary.
#  And l consider left side boundary.
#  Current boundary position
#  l = i - 1
#  r = i + 1
a = self.palindromeLength(text, i - 1, i + 1, n) + 1
#  Case B
#  When [i] location is not center of palindrome
#  so test with change of boundary.
#  Current boundary position
#  l = i - 1
#  r = i
b = self.palindromeLength(text, i - 1, i, n)
if (b > a) :
#  Select largest
a = b

if (a > length) :
#  Change resultant length
length = a
start = i - (int(a / 2))

i += 1

#  Display given text
print("\n Given string : ", text, end = "")
print("\n Result : ", end = "")
i = start
#  Display resultant palindrome
while (i <= start + length - 1) :
print(text[i], end = "")
i += 1

#  Display length of resultant palindrome
print("\n Resultant length : ", length, end = "")

def main() :
#  Test
#  iiii
#  ivfvi
#  civic
#  opo

if __name__ == "__main__": main()``````

#### Output

`````` Given string :  itiiiigi
Result : iiii
Resultant length :  4
Given string :  vvvvivfvim
Result : ivfvi
Resultant length :  5
Given string :  xyzacivicxrs
Result : civic
Resultant length :  5
Given string :  ttoopo
Result : opo
Resultant length :  3``````
``````#  Ruby program for
#  Longest palindromic substring solution
class LongestPalindrome
#  Returns length of palindrome in given indexes
def palindromeLength(text, l, r, n)
low = l
high = r
count = 0
while (low >= 0 && high < n && text[low] == text[high])
#  When palindrome pairs exist
count += 2
#  Change position
low -= 1
high += 1
end

return count
end

def findLPSS(text)
#  Get the length of given text
n = text.length
if (n == 0)
return
end

#  Every single character is form of palindrome.
#  So set result length is 1.
length = 1
#  Auxiliary variables
start = 0
a = 0
b = 0
i = 1
#  Find the max length palindrome.
#  Execute loop from 1 to n-1.
while (i < n)
#  Case A
#  Use to maintain order of left and right elements.
#  i is center point.
#  r consider right side boundary.
#  And l consider left side boundary.
#  Current boundary position
#  l = i - 1
#  r = i + 1
a = self.palindromeLength(text, i - 1, i + 1, n) + 1
#  Case B
#  When [i] location is not center of palindrome
#  so test with change of boundary.
#  Current boundary position
#  l = i - 1
#  r = i
b = self.palindromeLength(text, i - 1, i, n)
if (b > a)
#  Select largest
a = b
end

if (a > length)
#  Change resultant length
length = a
start = i - (a / 2)
end

i += 1
end

#  Display given text
print("\n Given string : ", text)
print("\n Result : ")
i = start
#  Display resultant palindrome
while (i <= start + length - 1)
print(text[i])
i += 1
end

#  Display length of resultant palindrome
print("\n Resultant length : ", length)
end

end

def main()
#  Test
#  iiii
#  ivfvi
#  civic
#  opo
end

main()``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````// Scala program for
// Longest palindromic substring solution
class LongestPalindrome()
{
// Returns length of palindrome in given indexes
def palindromeLength(text: String, l: Int, r: Int, n: Int): Int = {
var low: Int = l;
var high: Int = r;
var count: Int = 0;
while (low >= 0 && high < n &&
text.charAt(low) == text.charAt(high))
{
// When palindrome pairs exist
count += 2;
// Change position
low -= 1;
high += 1;
}
return count;
}
def findLPSS(text: String): Unit = {
// Get the length of given text
var n: Int = text.length();
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
var length: Int = 1;
// Auxiliary variables
var start: Int = 0;
var a: Int = 0;
var b: Int = 0;
var i: Int = 1;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
while (i < n)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
i += 1;
}
// Display given text
print("\n Given string : " + text);
print("\n Result : ");
i = start;
// Display resultant palindrome
while (i <= start + length - 1)
{
print(text.charAt(i));
i += 1;
}
// Display length of resultant palindrome
print("\n Resultant length : " + length);
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: LongestPalindrome = new LongestPalindrome();
// Test
// iiii
// ivfvi
// civic
// opo
}
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````
``````import Foundation;
// Swift 4 program for
// Longest palindromic substring solution
class LongestPalindrome
{
// Returns length of palindrome in given indexes
func palindromeLength(_ text: [Character],
_ l: Int,
_ r: Int,
_ n: Int) -> Int
{
var low: Int = l;
var high: Int = r;
var count: Int = 0;
while (low >= 0 && high < n &&
text[low] == text[high])
{
// When palindrome pairs exist
count += 2;
// Change position
low -= 1;
high += 1;
}
return count;
}
func findLPSS(_ data: String)
{
let text = Array(data);
// Get the length of given text
let n: Int = text.count;
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
var length: Int = 1;
// Auxiliary variables
var start: Int = 0;
var a: Int = 0;
var b: Int = 0;
var i: Int = 1;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
while (i < n)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = self.palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = self.palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
i += 1;
}
// Display given text
print("\n Given string : ", data, terminator: "");
print("\n Result : ", terminator: "");
i = start;
// Display resultant palindrome
while (i <= start + length - 1)
{
print(text[i], terminator: "");
i += 1;
}
// Display length of resultant palindrome
print("\n Resultant length : ", length, terminator: "");
}
}
func main()
{
// Test
// iiii
// ivfvi
// civic
// opo
}
main();``````

#### Output

`````` Given string :  itiiiigi
Result : iiii
Resultant length :  4
Given string :  vvvvivfvim
Result : ivfvi
Resultant length :  5
Given string :  xyzacivicxrs
Result : civic
Resultant length :  5
Given string :  ttoopo
Result : opo
Resultant length :  3``````
``````// Kotlin program for
// Longest palindromic substring solution
class LongestPalindrome
{
// Returns length of palindrome in given indexes
fun palindromeLength(text: String, l: Int, r: Int, n: Int): Int
{
var low: Int = l;
var high: Int = r;
var count: Int = 0;
while (low >= 0 && high < n &&
text.get(low) == text.get(high))
{
// When palindrome pairs exist
count += 2;
// Change position
low -= 1;
high += 1;
}
return count;
}
fun findLPSS(text: String): Unit
{
// Get the length of given text
val n: Int = text.length;
if (n == 0)
{
return;
}
// Every single character is form of palindrome.
// So set result length is 1.
var length: Int = 1;
// Auxiliary variables
var start: Int = 0;
var a: Int ;
var b: Int ;
var i: Int = 1;
// Find the max length palindrome.
// Execute loop from 1 to n-1.
while (i < n)
{
// Case A
// Use to maintain order of left and right elements.
// i is center point.
// r consider right side boundary.
// And l consider left side boundary.
// Current boundary position
// l = i - 1
// r = i + 1
a = this.palindromeLength(text, i - 1, i + 1, n) + 1;
// Case B
// When [i] location is not center of palindrome
// so test with change of boundary.
// Current boundary position
// l = i - 1
// r = i
b = this.palindromeLength(text, i - 1, i, n);
if (b > a)
{
// Select largest
a = b;
}
if (a > length)
{
// Change resultant length
length = a;
start = i - (a / 2);
}
i += 1;
}
// Display given text
print("\n Given string : " + text);
print("\n Result : ");
i = start;
// Display resultant palindrome
while (i <= start + length - 1)
{
print(text.get(i));
i += 1;
}
// Display length of resultant palindrome
print("\n Resultant length : " + length);
}
}
fun main(args: Array < String > ): Unit
{
// Test
// iiii
// ivfvi
// civic
// opo
}``````

#### Output

`````` Given string : itiiiigi
Result : iiii
Resultant length : 4
Given string : vvvvivfvim
Result : ivfvi
Resultant length : 5
Given string : xyzacivicxrs
Result : civic
Resultant length : 5
Given string : ttoopo
Result : opo
Resultant length : 3``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.