コードコピーは次のとおりです。
java.util.linkedListをインポートします。
パブリッククラスOJ {
public oj(){
素晴らしい();
}
/*
*関数:この数字の「5」をスペースと見なすと、空間で区切られた非陰性整数が得られます(一部の整数は「0」で始まります。 「これらのヘッダーのうち」は無視する必要があります
*、この整数がいくつかの '0で構成されていない限り、この整数は0です。 これらの非陰性整数は、大部分から小まで順番にソートされます。
*
*入力:入力、0〜9の数値で構成される文字列。
*入力データ要件:数値文字にすぎず、長さは0を超え、1000以下ではありません。分離された非陰性整数は10000000を超えていません。入力データは完全に「5」で構成できません。
*
*出力:出力、文字列は、分離された非陰性整数ソート結果(大部分から小さい)であり、隣接する整数は空間で分離され、最初の整数の前と最後の整数の後にスペースがありません。
*
*返品:通常、0を返し、例外が失敗した場合は-1を返します。
*/
public static int getSortnum(最終文字列入力、最終stringBuilder出力){
if(input.length()<= 0 || input.length()> 1000){
return -1;
}
string [] 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> 100000000){
return -1;
}
if(sorted.isempty()){
sorted.addfirst(temp);
J ++;
} それ以外 {
while(k> 0 &&(temp> sorted.get(k -1))){
k--;
}
sorted.add(k、temp);
J ++;
}
} catch(例外Ex){
return -1;
}
}
}
for(int i = 0; i <sorted.size() - 1; i ++){
output.append(sorted.get(i) + "");
}
output.append(sorted.getLast());
output.trimtosize();
0を返します。
}
}
テストケース:
コードコピーは次のとおりです。
junit.framework.assertをインポートします。
junit.framework.testcaseをインポートします。
パブリッククラスの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( "12345432155555000000000056436567"、output)&& "6436 4321 1234 67 0" .equals(output.tostring());
}
public void testcase05()
{
final stringbuilder output = new StringBuilder();
assert.asserttrue(-1 == oj.getsortnum( "123454321551000000000000000000001556436567"、output));
}
}