Skip to content

Commit 05b144f

Browse files
solves #2697: lexographically smallest palindrome
1 parent 5a7f106 commit 05b144f

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -822,3 +822,4 @@
822822
| 2660 | [Determine the Winner of a Bowling Game](https://leetcode.com/problems/determine-the-winner-of-a-bowling-game) | [![Java](assets/java.png)](src/DetermineTheWinnerOfABowlingGame.java) | |
823823
| 2670 | [Find the Distinct Difference Array](https://leetcode.com/problems/find-the-distinct-difference-array) | [![Java](assets/java.png)](src/FindTheDistinctDifferenceArray.java) | |
824824
| 2678 | [Number of Senior Citizens](https://leetcode.com/problems/number-of-senior-citizens) | [![Java](assets/java.png)](src/NumberOfSeniorCitizens.java) | |
825+
| 268 | [Number of Senior Citizens](https://leetcode.com/problems/number-of-senior-citizens) | [![Java](assets/java.png)](src/NumberOfSeniorCitizens.java) | |

Diff for: src/LexicographicallySmallestPalindrome.java

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// https://leetcode.com/problems/lexicographically-smallest-palindrome
2+
// T: O(N)
3+
// S: O(N)
4+
5+
public class LexicographicallySmallestPalindrome {
6+
public String makeSmallestPalindrome(String s) {
7+
final StringBuilder firstPart = new StringBuilder();
8+
final StringBuilder lastPart = new StringBuilder();
9+
10+
for (int i = 0 ; i < s.length() / 2 ; i++) {
11+
char first = s.charAt(i), last = s.charAt(s.length() - 1 - i);
12+
if (first != last) {
13+
char smaller = (char) Math.min(first, last);
14+
firstPart.append(smaller);
15+
lastPart.append(smaller);
16+
} else {
17+
firstPart.append(first);
18+
lastPart.append(first);
19+
}
20+
}
21+
22+
if (s.length() % 2 == 0) {
23+
return firstPart.append(lastPart.reverse()).toString();
24+
}
25+
return firstPart.append(s.charAt(s.length() / 2)).append(lastPart.reverse()).toString();
26+
}
27+
}

0 commit comments

Comments
 (0)