자바에서 서브 팔린 드롬을 찾으려고합니다. 그러나 아래 코드는 정확한 결과를 제공하지 않습니다.문자열에서 가장 큰 서브 파인드 룸 찾기
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
in.useDelimiter("\n");
String text = in.next();
int start = 0;
int end = 0;
int i = 0;
int j = 0;
while(i <= text.length())
{
j = i+1;
while(j < text.length())
{
if(text.substring(i, j).equals(reverse(text.substring(i, j))))
{
if(j-i > end-start)
{
start = i; end = j;
}
}
j++;
}
i++;
}
System.out.println(start + " : " + end);
}
static String reverse(String s)
{
return new StringBuffer(s).reverse().toString();
}
샘플 출력 :
apros tda adda
7 : 12
after the ostso
11 : 14
att feref
5 : 8
위의 모든
잘못이다.추신 : 나는 이것이 효율적인 알고리즘이 아니라는 것을 알고 있습니다.
1 :
이 숙제입니까? –
은 숙제와 같을 것입니다;) –
이것을 볼 때 오류를 찾는 데 문제가 있습니다. 다른 샘플 출력을 게시 할 수 있습니까? – BlackVegetable