강의로 돌아가기
만두피야

코드 첨부합니다. 효율성테스트에서 실패가 나오는데 혹시 temp=reverseString.append(substring1).reverse().toString(); 이부분이 문제인가요?

public int solution(String s)
{
int answer = 0;
int leng=s.length();
int max=0;

String substring1;
StringBuffer reverseString=new StringBuffer();
String temp;

for(int i=0;i<leng;i++) {
for(int k=i;k<leng;k++) {
substring1=s.substring(i,k+1);
temp=reverseString.append(substring1).reverse().toString();

if(substring1.equals(temp)) {
max=Math.max(max, k-i+1);
}
reverseString.delete(0, reverseString.length());
}
}

answer=max;
return answer;
}

  • Jeon-JongChan
    비교하는 equals 가 문제인것 같습니다. 왜냐하면 도중에 틀리면 반복을 그만두고 다른조건으로 반복해야 하는데 equals는 결국 전부 반복을 하는게 아닐까 싶네요. 자바 함수코드라 분석안해봐서 모르지만... Jeon-JongChan 2018.07.28 10:39
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.