Кода -копия выглядит следующим образом:
импортировать java.util.linkedlist;
открытый класс oj {
public oj () {
супер();
}
/*
* Функция: введите линию чисел. «Из этих заголовков» его следует игнорировать
*, если это целое число не состоит из нескольких '0, то это целое число составляет 0). Эти неотрицательные целые числа сортируются по порядку от больших до маленьких.
*
* Ввод: вход, строка, состоящая из 0 ~ 9 чисел.
* Требования к входным данным: не что иное, как числовые символы, длина, превышающая 0 и не больше 1000, отдельное неотрицательное целое число не будет превышать 10000000, и входные данные не могут быть составлены полностью из «5».
*
* Выход: выход, строка, представляет собой отдельный неотрицательный результат сортировки целого числа (от больших до малых), а соседние целые числа разделены пространством, и до первого целого числа нет места и после последнего целого числа.
*
* Возврат: вернуть 0 Обычно, возвращайте -1, если исключение не удалось.
*/
public static int getSortnum (окончательный ввод строки, окончательный выход StringBuilder) {
if (input.length () <= 0 || input.length ()> 1000) {
возврат -1;
}
String [] nums = input.split ("5");
int len = nums.length;
LinkedList <Integer> sorted = new LinkedList <Integer> ();
int j = 0;
для (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ("" ")) {
пытаться {
temp = integer.valueof (nums [i]);
if (temp> 100000000) {
возврат -1;
}
if (sorted.isempty ()) {
Sorted.addfirst (temp);
J ++;
} еще {
while (k> 0 && (temp> sorted.get (k - 1))) {
k--;
}
отсортировано.add (k, temp);
J ++;
}
} catch (Exception ex) {
возврат -1;
}
}
}
для (int i = 0; i <sorted.size () - 1; i ++) {
output.append (sored.get (i) + "");
}
output.append (sorted.getlast ());
output.trimtosize ();
возврат 0;
}
}
Тестовые примеры:
Кода -копия выглядит следующим образом:
Импорт junit.framework.assert;
Импорт junit.framework.testcase;
Public Class Ojtest расширяет тестовый приход
{
public void testcase01 ()
{
// написать тестовый пример здесь
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 ("123454321555500000000000056436567", output) && "6436 4321 1234 67 0" .Equals (output.toString ()));
}
public void testcase05 ()
{
final StringBuilder output = new StringBuilder ();
Assert.asserttrue (-1 == oj.getSortnum ("123454321551000000000000000000001556436567", output));
}
}