Die Codekopie lautet wie folgt:
import Java.util.linkedList;
öffentliche Klasse oj {
public oj () {
super();
}
/*
* Funktion: Geben Sie eine Zahlenzeile ein. "Von diesen Headern" sollte es ignoriert werden
*, Sofern diese Ganzzahl nicht aus mehreren 0 -Niveau besteht, ist diese Ganzzahl 0). Diese nicht negativen Ganzzahlen werden in Ordnung von groß bis klein sortiert.
*
* Eingabe: Eingabe, eine Zeichenfolge, die aus 0 ~ 9 Zahlen besteht.
* Eingabedatenanforderungen: Nichts mehr als numerische Zeichen, Länge größer als 0 und nicht mehr als 1000, die getrennte nicht negative Ganzzahl ist nicht mehr als 10000000 und die Eingabedaten können nicht vollständig aus '5' bestehen.
*
* Ausgang: Ausgabe, String, ist das getrennte nicht negative Ganzzahl-Sortierungsergebnis (von groß nach klein), und benachbarte Ganzzahlen werden durch einen Raum getrennt, und es gibt keine Räume vor der ersten Ganzzahl und nach der letzten Ganzzahl.
*
* Rückgabe: Normalerweise geben Sie 0 zurück, 1, wenn die Ausnahme fehlschlägt.
*/
public static int tertortnum (endgültige String -Eingabe, endgültige StringBuilder -Ausgabe) {
if (input.length () <= 0 || input.length ()> 1000) {
Return -1;
}
String [] nums = input.split ("5");
int len = nums.length;
LinkedList <NeGeger> sortiert = new LinkedList <GanzEger> ();
int j = 0;
für (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ("")) {
versuchen {
temp = Integer.Valueof (nums [i]);
if (temp> 100000000) {
Return -1;
}
if (sortiert.isempty ()) {
sortiert.addfirst (temp);
J ++;
} anders {
while (k> 0 && (temp> sortiert.get (k - 1))) {
k--;
}
sortiert.add (k, temp);
J ++;
}
} catch (Ausnahme ex) {
Return -1;
}
}
}
für (int i = 0; i <sortiert.size () - 1; i ++) {
output.Append (sortiert.get (i) + "");
}
output.Append (sortiert.getLast ());
output.trimtosize ();
Rückkehr 0;
}
}
Testfälle:
Die Codekopie lautet wie folgt:
Import junit.framework.assert;
Import JUNIT.Framework.TestCase;
öffentliche Klasse OjTest erweitert TestCase
{
public void TestCase01 ()
{
// Schreiben Sie hier einen Testfall
final StringBuilder output = new StringBuilder ();
Assert.assertRue (-1 == oj.getSortnum ("1234543 215555", Ausgabe));
}
public void TestCase02 ()
{
final StringBuilder output = new StringBuilder ();
Assert.assertRue (0 == oj.getSortnum ("1234543215555", Ausgabe) && "4321 1234" .Equals (output.toString ()));
}
public void TestCase03 ()
{
final StringBuilder output = new StringBuilder ();
Assert.assertRue (0 == Oj.getSortnum ("12345432155556436567", Ausgabe) && "6436 4321 1234 67" .Equals (output.toString ());
}
public void TestCase04 ()
{
final StringBuilder output = new StringBuilder ();
Assert.assertRue (0 == oj.getSortnum ("123454321555000000000056436567", Ausgabe) && "6436 4321 1234 67 0" .Equals (output.toString ());
}
public void TestCase05 ()
{
final StringBuilder output = new StringBuilder ();
Assert.assertRue (-1 == oj.getSortnum ("12345432155100000000000000001556436567", Ausgabe));
}
}