La copie de code est la suivante:
import java.util.linkedlist;
classe publique oj {
public oj () {
super();
}
/ *
* Fonction: entrez une ligne de nombres. «De ces en-têtes», il doit être ignoré
*, à moins que cet entier ne soit composé de plusieurs '0, alors cet entier est 0). Ces entiers non négatifs sont triés dans l'ordre de grand à petit.
*
* Entrée: entrée, une chaîne composée de 0 ~ 9 nombres.
* Exigences de données d'entrée: rien de plus que des caractères numériques, une longueur supérieure à 0 et pas plus de 1000, l'entier non négatif séparé ne sera pas supérieur à 10000000, et les données d'entrée ne peuvent pas être composées entièrement de «5».
*
* Sortie: sortie, chaîne, est le résultat de tri entier non négatif séparé (du grand à petit), et les entiers adjacents sont séparés par un espace, et il n'y a pas d'espaces avant le premier entier et après le dernier entier.
*
* Retour: Retour 0 Normalement, retournez -1 Si l'exception échoue.
* /
public static int getsOrtnum (entrée de chaîne finale, sortie finale StringBuilder) {
if (input.length () <= 0 || input.length ()> 1000) {
retour -1;
}
String [] nums = input.split ("5");
int len = nums.length;
LinkedList <Integer> trid = new LinkedList <Integer> ();
int j = 0;
pour (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ("")) {
essayer {
temp = Integer.ValueOf (nums [i]);
if (temp> 100000000) {
retour -1;
}
if (trid.isempty ()) {
trié.addfirst (temp);
j ++;
} autre {
while (k> 0 && (temp> trid.get (k - 1))) {
K--;
}
trié.add (k, temp);
j ++;
}
} catch (exception ex) {
retour -1;
}
}
}
for (int i = 0; i <tri.Size () - 1; i ++) {
output.append (trid.get (i) + "");
}
output.append (trid.getLast ());
output.trimToSize ();
retour 0;
}
}
Cas de test:
La copie de code est la suivante:
Importer Junit.Framework.Asersert;
Importer Junit.Framework.TestCase;
La classe publique Ojtest étend le testcase
{
public void testcase01 ()
{
// Écrivez un cas de test ici
Final StringBuilder output = new StringBuilder ();
Assert.asserttrue (-1 == oj.getsortnum ("1234543 215555", sortie));
}
public void testcase02 ()
{
Final StringBuilder output = new StringBuilder ();
Assert.asserttrue (0 == oj.getsortnum ("1234543215555", sortie) && "4321 1234" .equals (output.toString ()));
}
public void testcase03 ()
{
Final StringBuilder output = new StringBuilder ();
Assert.asserttrue (0 == oj.getsortnum ("12345432155556436567", output) && "6436 4321 1234 67" .equals (output.toString ()));
}
public void testcase04 ()
{
Final StringBuilder output = new StringBuilder ();
Assert.AsersertTrue (0 == oj.getsortnum ("123454321555000000000000000056436567", sortie) && "6436 4321 1234 67 0" .equals (output.tostring ()));
}
public void testcase05 ()
{
Final StringBuilder output = new StringBuilder ();
Assert.AsersertTrue (-1 == oj.getsortnum ("1234543215510000000000000000001556436567", sortie));
}
}