La copia del código es la siguiente:
import java.util.linkedlist;
clase pública OJ {
public oj () {
súper();
}
/*
* Función: ingrese una línea de números. 'de estos encabezados' debe ignorarse
*, a menos que este entero esté compuesto por varios '0, entonces este entero es 0). Estos enteros no negativos se clasifican en orden de grandes a pequeños.
*
* Entrada: entrada, una cadena compuesta de 0 ~ 9 números.
* Requisitos de datos de entrada: nada más que caracteres numéricos, longitud mayor que 0 y no mayor que 1000, el entero no negativo separado no será mayor que 10000000, y los datos de entrada no pueden componerse completamente de '5'.
*
* Salida: salida, cadena, es el resultado de clasificación de enteros no negativo separado (de grande a pequeño), y los enteros adyacentes están separados por un espacio, y no hay espacios antes del primer entero y después del último entero.
*
* Return: Return 0 Normalmente, Return -1 si la excepción falla.
*/
public static int getSortnum (entrada final de cadena, salida final de stringBuilder) {
if (input.length () <= 0 || input.length ()> 1000) {
regreso -1;
}
Cadena [] nums = input.split ("5");
int len = nums.length;
LinkedList <Integer> sorted = new LinkedList <Integer> ();
int j = 0;
para (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ("")) {
intentar {
temp = Integer.ValueOf (nums [i]);
if (temp> 100000000) {
regreso -1;
}
if (sorted.isempty ()) {
sorted.addfirst (temp);
j ++;
} demás {
while (k> 0 && (temp> sorted.get (k - 1))) {
K--;
}
sorted.add (k, temp);
j ++;
}
} Catch (Exception Ex) {
regreso -1;
}
}
}
para (int i = 0; i <sorted.size () - 1; i ++) {
output.append (sorted.get (i) + "");
}
output.append (sorted.getLast ());
outRiMTosize ();
regresar 0;
}
}
Casos de prueba:
La copia del código es la siguiente:
import junit.framework.assert;
import junit.framework.testcase;
Public Class OjTest extiende la prueba de prueba
{
Public void testcase01 ()
{
// Escribe un caso de prueba aquí
Output StringBuilder final = new StringBuilder ();
Afirmar.asserttrue (-1 == oj.getSortNum ("1234543 215555", salida));
}
Public void testcase02 ()
{
Output StringBuilder final = new StringBuilder ();
Afirmar.assertTrue (0 == oj.getSortnum ("1234543215555", salida) && "4321 1234" .equals (output.ToString ()));
}
Public void testcase03 ()
{
Output StringBuilder final = new StringBuilder ();
Afirmar.asserttrue (0 == oj.getSortnum ("12345432155556436567", salida) && "6436 4321 1234 67" .equals (output.ToString ()));
}
Public void testcase04 ()
{
Output StringBuilder final = new StringBuilder ();
Afirmar.asserttrue (0 == oj.getSortnum ("1234543215550000000000000056436567", salida) && "6436 4321 1234 67 0" .equals (output.toString ()));
}
Public void testcase05 ()
{
salida final de stringBuilder = new StringBuilder ();
Afirmar.asserttrue (-1 == oj.getSortnum ("12345432155100000000000000000000001556436567", salida));
}
}