A cópia do código é a seguinte:
importar java.util.LinkedList;
classe pública oj {
public oj () {
super();
}
/*
* Função: Digite uma linha de números. 'desses cabeçalhos' deve ser ignorado
*, a menos que esse número inteiro seja composto por vários '0, então esse número inteiro é 0). Esses números inteiros não negativos são classificados em ordem de grande a pequena.
*
* Entrada: entrada, uma sequência composta de 0 ~ 9 números.
* Requisitos de dados de entrada: nada mais que caracteres numéricos, comprimento maior que 0 e não maior que 1000, o número inteiro não negativo separado não será maior que 10000000, e os dados de entrada não podem ser compostos inteiramente de '5'.
*
* Saída: Saída, string, é o resultado de classificação inteira não negativo separado (de grande a pequeno), e os números inteiros adjacentes são separados por um espaço, e não há espaços antes do primeiro número inteiro e após o último número inteiro.
*
* Retornar: retornar 0 normalmente, retorne -1 se a exceção falhar.
*/
public static int getSortnum (entrada final da string, saída final do StringBuilder) {
if (input.length () <= 0 || input.length ()> 1000) {
retornar -1;
}
String [] nums = input.split ("5");
int len = nums.Length;
LinkedList <Teger> classificado = new LinkedList <Teger> ();
int j = 0;
para (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ("")) {
tentar {
temp = integer.valueof (nums [i]);
if (temp> 100000000) {
retornar -1;
}
if (classificado.isempty ()) {
classificado.Addfirst (temp);
j ++;
} outro {
while (k> 0 && (temp> classificado.get (k - 1))) {
k--;
}
classificado.Add (K, Temp);
j ++;
}
} catch (Exceção ex) {
retornar -1;
}
}
}
for (int i = 0; i <classificado.size () - 1; i ++) {
output.Append (classificado.get (i) + "");
}
output.Append (classificado.getLast ());
output.Trimtosize ();
retornar 0;
}
}
Casos de teste:
A cópia do código é a seguinte:
import junit.framework.assert;
import junit.framework.testcase;
A classe pública ojtest estende o teste
{
public void testcase01 ()
{
// Escreva um caso de teste aqui
final StringBuilder Output = new StringBuilder ();
Assert.assertTrue (-1 == oj.getSortnum ("1234543 215555", saída));
}
public void testcase02 ()
{
final StringBuilder Output = new StringBuilder ();
Assert.assertTrue (0 == oj.getSortnum ("1234543215555", saída) && "4321 1234" .equals (output.ToString ()));
}
public void testcase03 ()
{
final StringBuilder Output = new StringBuilder ();
Assert.assertTrue (0 == oj.getSortnum ("12345432155556436567", saída) && "6436 4321 1234 67" .equals (output.toString ()));
}
public void testcase04 ()
{
final StringBuilder Output = new StringBuilder ();
Assert.assertTrue (0 == oj.getSortnum ("1234543215550000000000000056436567", saída) && "6436 4321 1234 67 0" .Equals (saída.tostring ());
}
public void testcase05 ()
{
final StringBuilder Output = new StringBuilder ();
Assert.assertTrue (-1 == oj.getSortnum ("12345432155100000000000000000000001556436567", saída));
}
}