Salinan kode adalah sebagai berikut:
impor java.util.linkedlist;
kelas publik oj {
OJ publik () {
super();
}
/*
* Fungsi: Masukkan garis angka. 'dari header ini' harus diabaikan
*, kecuali bilangan bulat ini terdiri dari beberapa '0, maka bilangan bulat ini adalah 0). Integer non-negatif ini diurutkan secara berurutan dari besar ke kecil.
*
* Input: Input, string yang terdiri dari 0 ~ 9 angka.
* Persyaratan data input: Tidak lebih dari karakter numerik, panjang lebih besar dari 0 dan tidak lebih besar dari 1000, bilangan bulat non-negatif yang terpisah tidak akan lebih besar dari 10000000, dan data input tidak dapat seluruhnya terdiri dari '5'.
*
* Output: output, string, adalah hasil penyortiran integer non-negatif yang terpisah (dari besar ke kecil), dan bilangan bulat yang berdekatan dipisahkan oleh ruang, dan tidak ada spasi sebelum bilangan bulat pertama dan setelah bilangan bulat terakhir.
*
* Return: Return 0 secara normal, return -1 Jika pengecualian gagal.
*/
public static int getSortNum (input string final, output stringBuilder akhir) {
if (input.length () <= 0 || input.length ()> 1000) {
kembali -1;
}
String [] nums = input.split ("5");
int len = nums.length;
LinkedList <Integer> sorted = new LinkedList <Integer> ();
int j = 0;
untuk (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ("")) {
mencoba {
temp = integer.valueof (num [i]);
if (temp> 100000000) {
kembali -1;
}
if (sorted.isempty ()) {
sorted.addfirst (temp);
j ++;
} kalau tidak {
while (k> 0 && (temp> sorted.get (k - 1))) {
K--;
}
sorted.add (k, temp);
j ++;
}
} catch (Exception ex) {
kembali -1;
}
}
}
untuk (int i = 0; i <sorted.size () - 1; i ++) {
output.append (sorted.get (i) + "");
}
output.append (sorted.getLast ());
output.trimtosize ();
kembali 0;
}
}
Kasus Uji:
Salinan kode adalah sebagai berikut:
impor junit.framework.assert;
impor junit.framework.testcase;
Ojtest kelas publik memperluas testcase
{
public void testcase01 ()
{
// Tulis test case di sini
final stringBuilder output = new StringBuilder ();
Assert.asserttrue (-1 == oj.getsortnum ("1234543 215555", output));
}
public void testcase02 ()
{
final stringBuilder output = new StringBuilder ();
Assert.asserttrue (0 == oj.getSortnum ("1234543215555", output) && "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.asserttrue (0 == oj.getsortnum ("1234543215550000000000000056436567", output) && "6436 4321 1234 67 0" .Equals (output.tostring ()));
}
public void testcase05 ()
{
final stringBuilder output = new StringBuilder ();
Assert.asserttrue (-1 == oj.getsortnum ("123454321551000000000000000000001556436567", output));
}
}