파이썬으로 풀때
from collections import Counter
class Solution:
def is_palindrome(self, s: str) -> str:
return s == s[::-1]
def longestPalindrome(self, s: str) -> str:
n = len(s)
max_length = 0
start = 0
for i in range(n):
for j in range(i, n):
substring = s[i:j+1]
if self.is_palindrome(substring) and len(substring) > max_length:
max_length = len(substring)
start = i
return s[start:start + max_length]
ㅈ같은 자바
class Solution {
/**
* 문자열이 팰린드롬인지 확인
* Python: s == s[::-1]
* Java: StringBuilder.reverse() 사용
*/
public boolean isPalindrome(String s) {
return s.equals(new StringBuilder(s).reverse().toString());
}
/**
* 가장 긴 팰린드롬 부분 문자열 찾기
* Python 코드를 Java로 포팅
*/
public String longestPalindrome(String s) {
int n = s.length();
int maxLength = 0;
int start = 0;
// 모든 가능한 부분 문자열 확인
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
// Python: substring = s[i:j+1]
String substring = s.substring(i, j + 1);
// Python: if self.is_palindrome(substring) and len(substring) > max_length
if (isPalindrome(substring) && substring.length() > maxLength) {
maxLength = substring.length();
start = i;
}
}
}
// Python: return s[start:start + max_length]
return s.substring(start, start + maxLength);
}
/**
* 더 효율적인 팰린드롬 찾기 (확장 알고리즘)
* 시간복잡도: O(n^2)
*/
public String longestPalindromeOptimized(String s) {
if (s == null || s.length() < 1) return "";
int start = 0, end = 0;
for (int i = 0; i < s.length(); i++) {
// 홀수 길이 팰린드롬 (중심이 문자)
int len1 = expandAroundCenter(s, i, i);
// 짝수 길이 팰린드롬 (중심이 두 문자 사이)
int len2 = expandAroundCenter(s, i, i + 1);
int len = Math.max(len1, len2);
if (len > end - start) {
start = i - (len - 1) / 2;
end = i + len / 2;
}
}
return s.substring(start, end + 1);
}
/**
* 중심에서 양쪽으로 확장하며 팰린드롬 길이 계산
*/
private int expandAroundCenter(String s, int left, int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
left--;
right++;
}
return right - left - 1;
}
}
쥐쥐.
자바충 극혐하는데 이건 자바가 낫다. 파이썬 코드거 짧아지면 이해하기 쉬울거라 착각하는데 전혀 그렇지 않다. 오히려 헷갈림. - dc App
니가 파이썬을 싫어하는건 아니고? 파이썬 코드 짧아진다고 복잡해지는거 ㅈ도 없는데
파이썬 무겁자나
왜그래... 자바가 훨 무겁지. 다른걸로 까면 모를까... 속도라던가. 여튼 자바는 시대 뒤떨어진 언어다. 이걸 못버리는 기업들(인재채용문제가 가장크다봄)이 문제임.