forked from blakeembrey/code-problems
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLargestPalindrome.java
More file actions
32 lines (29 loc) · 913 Bytes
/
Copy pathLargestPalindrome.java
File metadata and controls
32 lines (29 loc) · 913 Bytes
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
public class LargestPalindrome {
public static void main(String[] args) {
LargestPalindrome lp = new LargestPalindrome();
String input = "I am a red racecar driver";
System.out.println(lp.getPalindrome(input));
}
public String getPalindrome(String input) {
if (input == null || input.length() == 0)
return "";
if (input.length() == 1)
return input;
String largestPalindrome = input.charAt(0) + "";
// Run across the string
for (int i = 1; i < input.length(); i++) {
String curPalindrome = checkSides(input, i, i);
if (curPalindrome.length() > largestPalindrome.length())
largestPalindrome = curPalindrome;
}
return largestPalindrome;
}
public String checkSides(String input, int left, int right) {
while (left >= 0 && right < input.length()
&& input.charAt(left) == input.charAt(right)) {
left--;
right++;
}
return input.substring(left + 1, right);
}
}