نسخة الكود كما يلي:
استيراد java.util.linkedList ؛
الطبقة العامة oj {
الجمهور OJ () {
ممتاز()؛
}
/*
* الوظيفة: أدخل خطًا من الأرقام. "من هذه الرؤوس" يجب تجاهلها
* ، ما لم يتكون هذا عدد صحيح من عدة '0 ، فإن هذا عدد صحيح هو 0). يتم فرز هذه الأعداد الصحيحة غير السالبة بالترتيب من كبير إلى صغير.
*
* الإدخال: الإدخال ، سلسلة تتكون من 0 ~ 9 أرقام.
* متطلبات بيانات الإدخال: لا شيء أكثر من الأحرف الرقمية ، والطول أكبر من 0 وليس أكبر من 1000 ، لن يكون عدد صحيح غير سلبي منفصل أكبر من 10000000 ، ولا يمكن أن تتكون بيانات الإدخال بالكامل من "5".
*
* الإخراج: الإخراج ، السلسلة ، هو نتيجة فرز عدد صحيح غير سلبي مفصولة (من كبيرة إلى صغيرة) ، ويتم فصل الأعداد الصحيحة المجاورة بمساحة ، ولا توجد مسافات قبل عدد صحيح أول وبعد عدد صحيح آخر.
*
* العودة: إرجاع 0 بشكل طبيعي ، إرجاع -1 إذا فشل الاستثناء.
*/
static int getortnum (إدخال السلسلة النهائية ، إخراج 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 ()) {
sored.addfirst (temp) ؛
J ++ ؛
} آخر {
بينما (k> 0 && (temp> sorted.get (k - 1))) {
ك- ؛
}
sored.add (k ، temp) ؛
J ++ ؛
}
} catch (استثناء ex) {
العودة -1 ؛
}
}
}
لـ (int i = 0 ؛ i <sorted.size () - 1 ؛ i ++) {
output.append (sored.get (i) + "") ؛
}
output.append (sored.getlast ()) ؛
output.trimtosize () ؛
العودة 0 ؛
}
}
حالات الاختبار:
نسخة الكود كما يلي:
استيراد junit.framework.assert ؛
استيراد junit.framework.testcase ؛
يمتد اختبار الطبقة العامة
{
public void testcase01 ()
{
// اكتب حالة اختبار هنا
إخراج StringBuilder النهائي = جديد StringBuilder () ؛
Assert.AssertTrue (-1 == OJ.GetSortNum ("1234543 215555" ، الإخراج)) ؛
}
public void testcase02 ()
{
إخراج StringBuilder النهائي = جديد StringBuilder () ؛
Assert.AssertTrue (0 == OJ.GetSortNum ("1234543215555" ، الإخراج) && "4321 1234" .equals (output.toString ())) ؛
}
public void testcase03 ()
{
إخراج StringBuilder النهائي = جديد StringBuilder () ؛
Assert.AssertTrue (0 == OJ.GetSortNum ("12345432155556436567" ، Output) && "6436 4321 1234 67" .equals (output.toString ())) ؛
}
public void testcase04 ()
{
إخراج StringBuilder النهائي = جديد StringBuilder () ؛
Assert.AssertTrue (0 == oj.getsortnum ("1234543215550000000000000056436567" ، output) && "6436 4321 1234 67 0" .equals (output.toString ())) ؛
}
public void testcase05 ()
{
إخراج StringBuilder النهائي = جديد StringBuilder () ؛
Assert.AssertTrue (-1 == OJ.GetSortnum ("12345432155100000000000000000015556436567" ، Output)) ؛
}
}