코드 사본은 다음과 같습니다.
java.util.linkedList 가져 오기;
공개 클래스 OJ {
public oj () {
감독자();
}
/*
* 기능 :이 숫자 라인에서 '5'를 공백으로 간주하면 숫자를 입력하면 공백으로 분리 된 비 음성 정수 라인을 얻을 수 있습니다 (일부 정수는 '0'으로 시작할 수 있습니다. '이 헤더 중'중에서 무시해야합니다
*,이 정수가 여러 '0으로 구성되지 않는 한,이 정수는 0). 이러한 비 음성 정수는 대형에서 작은 것까지 순서대로 정렬됩니다.
*
* 입력 : 입력, 0 ~ 9 숫자로 구성된 문자열.
* 입력 데이터 요구 사항 : 숫자는 0보다 크고 0보다 크고 1000보다 크지 않으며 분리되지 않은 비 음성 정수는 10000000보다 크지 않으며 입력 데이터는 전적으로 '5'로 구성 될 수는 없습니다.
*
* 출력 : 출력, 문자열은 분리되지 않은 비 음성 정수 분류 결과 (대형에서 작은)이며 인접한 정수는 공간으로 분리되며 첫 번째 정수 이전과 마지막 정수 후에는 공간이 없습니다.
*
* 반환 : 0 정상적으로 반환하고 예외가 실패하면 -1을 반환합니다.
*/
public static int getSortnum (최종 문자열 입력, 최종 StringBuilder 출력) {
if (input.length () <= 0 || input.length ()> 1000) {
반품 -1;
}
문자열 [] nums = input.split ( "5");
int len = nums.length;
LinkedList <integer> sorted = new LinkedList <integer> ();
int j = 0;
for (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
if (! nums [i] .equals ( "")) {
노력하다 {
temp = integer.valueof (nums [i]);
if (temp> 1000000000) {
반품 -1;
}
if (sorted.isempty ()) {
SINTED.ADDFIRST (TEMP);
J ++;
} 또 다른 {
while (k> 0 && (temp> sorted.get (k -1))) {
케이--;
}
sorted.add (k, temp);
J ++;
}
} catch (예외) {
반품 -1;
}
}
}
for (int i = 0; i <sorted.size () -1; i ++) {
output.append (sorted.get (i) + "");
}
output.append (sorted.getLast ());
output.trimtosize ();
반환 0;
}
}
테스트 사례 :
코드 사본은 다음과 같습니다.
import junit.framework.assert;
import junit.framework.testcase;
공개 클래스 Ojtest는 테스트 케이스를 확장합니다
{
공개 void testcase01 ()
{
// 여기에 테스트 케이스를 작성하십시오
최종 stringbuilder output = new StringBuilder ();
assert.asserttrue (-1 == oj.getSortnum ( "1234543 215555", 출력);
}
공개 void testcase02 ()
{
최종 stringBuilder output = new StringBuilder ();
assert.asserttrue (0 == oj.getSortnum ( "1234543215555", output) && "4321 1234".equals (output.toString ()));
}
공개 void testcase03 ()
{
최종 stringbuilder output = new StringBuilder ();
assert.asserttrue (0 == oj.getSortnum ( "123454321555556436567", 출력) && "6436 4321 1234 67".equals (output.toString ()));
}
공개 void testcase04 ()
{
최종 stringbuilder output = new StringBuilder ();
assert.asserttrue (0 == OJ.GetSortnum ( "12345432155555000000000056436567", 출력) && "6436 4321 1234 67 0".Equals (output.toString ());
}
공개 void testcase05 ()
{
최종 stringbuilder output = new StringBuilder ();
assert.asserttrue (-1 == oj.getSortnum ( "12345432155100000000000000000000001556436567", 출력));
}
}