-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathLongestPalSubStr.java
More file actions
40 lines (35 loc) · 1.12 KB
/
LongestPalSubStr.java
File metadata and controls
40 lines (35 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* Given a string s, return the longest palindromic substring in s.*/
import java.util.Scanner;
public class LongestPalSubStr {
static public String longestPalindrome(String s) {
char[] charArray = s.toCharArray();
int start = 0;
int maxLen = 0;
for (int i = 0; i < charArray.length; i++) {
for (int len = 0; i + len < charArray.length; len++) {
if (isPalindrome(charArray, i, len) && len + 1 > maxLen) {
maxLen = len + 1;
start = i;
}
}
}
return s.substring(start, start + maxLen);
}
static public boolean isPalindrome(char[] charArray, int start, int len) {
while (len > 0) {
if (charArray[start] != charArray[start + len]) {
return false;
}
start++;
len -= 2;
}
return true;
}
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
String t=longestPalindrome(s);
System.out.println(t);
sc.close();
}
}