[LeetCode] 5. Longest Palindromic Substring (Java)
2023. 1. 2. 07:11ㆍ알고리즘/LeetCode
Description
Given a string s, return the longest palindromic substring in s.
string s에서 가장 긴 거꾸로 읽어도 같은 substring을 구하라.
Example 1:
Input: s = "babad"
Output: "bab"
Explanation: "aba" is also a valid answer.
Example 2:
Input: s = "cbbd"
Output: "bb"
Constraints:
- 1 <= s.length <= 1000
- s consist of only digits and English letters.
Solution
class Solution {
public String longestPalindrome(String s) {
String max="";
int times=0;
int length=s.length();
for(int i=0;i<length;i++){
if(length-1-i>i){
times=i;
}else{
times=length-1-i;
}
String temp = String.valueOf(s.charAt(i));
//가운데가 외자로 시작할 경우
for(int j=1;j<times+1;j++){
if(s.charAt(i-j)==s.charAt(i+j)){
temp = String.valueOf(s.charAt(i-j)) + temp + String.valueOf(s.charAt(i+j));
}else{
break;
}
}
if(temp.length()>max.length()){
max=temp;
}
temp = "";
//가운데가 외자 없이 시작할 경우
for(int j=0;j<times+1;j++){
if(length>i+j+1){
if(s.charAt(i-j)==s.charAt(i+j+1)){
temp = String.valueOf(s.charAt(i-j)) + temp + String.valueOf(s.charAt(i+j+1));
}else{
break;
}
}
}
if(temp.length()>max.length()){
max=temp;
}
}
return max;
}
}
모든 문자열을 for문으로 탐색하며 가운데에 외자가 있을 경우와 없을 경우로 나눠서 값을 구하도록 구성했다.
'알고리즘 > LeetCode' 카테고리의 다른 글
[LeetCode] 7. Reverse Integer (Java) (0) | 2023.01.02 |
---|---|
[LeetCode] 6. Zigzag Conversion (Java) (0) | 2023.01.02 |
[LeetCode] 4. Median of Two Sorted Arrays (Java) - O(log (m+n)) (0) | 2023.01.02 |
[LeetCode] 4. Median of Two Sorted Arrays (Java) (0) | 2022.12.30 |
[LeetCode] 3. Longest Substring Without Repeating Characters (Java) (0) | 2022.12.28 |