6
respostas

Consegui chegar a 246, alguém consegue refinar a solução?

O recorde está em 236 (http://www.spoj.com/ranks/PALINCOD/lang=JAVA), alguém consegue reduzir 10 caracteres?

import java.util.*;class M{public static void main(String[]a){Scanner s=new Scanner(System.in);for(int i=0,j=s.nextInt();i<j;){String t=s.next();System.out.printf(++i+" \"%s\"\n",new StringBuilder(t).reverse().toString().equals(t)?"YES":"NO");}}}
6 respostas

Fala ai Marcos, de boa ?

To pensando apenas em trocar o for pelo while, mas acho que ficaria do mesmo tamanho, ou até maior.

Boa noite Marcos,

Acho que consegui chegar em 236 caracteres.

Difícil hein?! Rs...

Veja se a saída está certinha:

import java.util.*;class M{public static void main(String[]z){Scanner s=new Scanner(System.in);for(int i=0,j=s.nextInt();i<j;){String t=s.next();System.out.println(++i+(new StringBuffer(t).reverse().toString().equals(t)?"YES":"NO"));}}}

Se tiver erros, avisa aí.

Abraço.

Rafael, boa noite!

A sua saída não está no formato exigido, que seria com aspas, espaço e quebra de linha. Ex:

1 "YES"

2 "NO"

Mas você deu uma ideia super legal, rs... usar o StringBuffer, reduzimos um caractere. \o/

import java.util.*;class M{public static void main(String[]a){Scanner s=new Scanner(System.in);for(int i=0,j=s.nextInt();i<j;){String t=s.next();System.out.printf(++i+" \"%s\"\n",new StringBuffer(t).reverse().toString().equals(t)?"YES":"NO");}}}

Estamos em 245.... será que é possível reduzir mais?

Abs.

Boa tarde Marcos,

É, pensei de início no StringBuffer por ter uma letra a menos :-)

Ah tá, tem as quebras de linha e aspas.

Olha, creio que consegui chegar em 237:

import java.util.*;class M{public static void main(String[]a){Scanner s=new Scanner(System.in);for(int i=0,j=s.nextInt();i<j;){String t=s.next();System.out.printf(++i+" \"%s\"\n",t.equals(new StringBuffer(t).reverse()+"")?"YES":"NO");}}}*/

Tentando baixar mais. Mas já andamos né?

Testei aqui, parece estar certa a saída. Veja aí se está certo. Se tiver ideia de baixar mais, posta aí. Hehe...

Abraço.

Show!!!

Boa ideia em concatenar com "" para chamar implicitamente o "toString" no StringBuffer, Parabéns!

Só precisamos reduzir um caracter para igualar ao recorde do site.

Abraço!

Valeu, Marcos.

Esse caractere a menos é que está difícil. Tentei mais um pouco, mas ainda não consegui. Mas, caso eu tenha novas, posto aqui. Se conseguir, poste aqui também.

Abraço!