การคัดลอกรหัสมีดังนี้:
นำเข้า java.util.linkedList;
ชั้นเรียนสาธารณะ oj {
สาธารณะ oj () {
super ();
-
-
* ฟังก์ชั่น: ป้อนหมายเลขของตัวเลข 'ของส่วนหัวเหล่านี้' ควรเพิกเฉย
* เว้นแต่ว่าจำนวนเต็มนี้ประกอบด้วยหลาย '0 ของจำนวนเต็มนี้คือ 0) จำนวนเต็มที่ไม่เป็นลบเหล่านี้ถูกจัดเรียงตามลำดับจากขนาดใหญ่ถึงขนาดเล็ก
-
* อินพุต: อินพุตสตริงที่ประกอบด้วยหมายเลข 0 ~ 9
* ข้อกำหนดของข้อมูลอินพุต: ไม่มีอะไรมากไปกว่าอักขระตัวเลขความยาวมากกว่า 0 และไม่เกิน 1,000 จำนวนเต็มที่ไม่เป็นลบที่แยกจากกันจะไม่เกิน 10,000,000 และข้อมูลอินพุตไม่สามารถประกอบด้วย '5' ทั้งหมด
-
* เอาต์พุต: เอาต์พุต, สตริง, เป็นผลการเรียงลำดับจำนวนเต็มที่ไม่เป็นลบที่แยกจากกัน (จากขนาดใหญ่ถึงเล็ก) และจำนวนเต็มที่อยู่ติดกันจะถูกคั่นด้วยพื้นที่และไม่มีช่องว่างก่อนจำนวนเต็มแรกและหลังจากจำนวนเต็มสุดท้าย
-
* return: return 0 ปกติ, return -1 หากข้อยกเว้นล้มเหลว
-
public Static int getSortnum (อินพุตสตริงสุดท้าย, เอาต์พุตสตริงสุดท้าย) {
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;
สำหรับ (int i = 0; i <len; i ++) {
int temp = 0;
int k = j;
ถ้า (! nums [i] .equals ("")) {
พยายาม {
temp = integer.valueof (nums [i]);
ถ้า (อุณหภูมิ> 10,000000000) {
กลับ -1;
-
if (sorted.isempty ()) {
sorted.addfirst (temp);
J ++;
} อื่น {
ในขณะที่ (k> 0 && (temp> sorted.get (k - 1))) {
K--;
-
sorted.add (k, temp);
J ++;
-
} catch (exception ex) {
กลับ -1;
-
-
-
สำหรับ (int i = 0; i <sorted.size () - 1; i ++) {
output.append (sorted.get (i) + "");
-
output.append (sorted.getLast ());
เอาท์พุท. trimtosize ();
กลับ 0;
-
-
กรณีทดสอบ:
การคัดลอกรหัสมีดังนี้:
นำเข้า junit.framework.assert;
นำเข้า junit.framework.testcase;
OJTest ชั้นเรียนสาธารณะขยาย TestCase
-
Public Void TestCase01 ()
-
// เขียนกรณีทดสอบที่นี่
output StringBuilder สุดท้าย = new StringBuilder ();
assert.assertTrue (-1 == oj.getSortnum ("1234543 215555", เอาต์พุต));
-
Public Void TestCase02 ()
-
output StringBuilder สุดท้าย = new StringBuilder ();
assert.assertTrue (0 == oj.getSortnum ("1234543215555", เอาต์พุต) && "4321 1234" .Equals (output.toString ()));
-
Public Void TestCase03 ()
-
สตริงสุดท้ายเอาต์พุต = new StringBuilder ();
assert.assertTrue (0 == oj.getSortnum ("1234543215556436567", เอาท์พุท) && "6436 4321 1234 67" .Equals (เอาท์พุท. toString ()));
-
Public Void TestCase04 ()
-
สตริงสุดท้ายเอาต์พุต = new StringBuilder ();
assert.assertTrue (0 == oj.getSortnum ("1234543215550000000000000056436567", เอาต์พุต) && "6436 4321 1234 67 0"
-
Public Void TestCase05 ()
-
สตริงสุดท้ายเอาต์พุต = new StringBuilder ();
assert.assertTrue (-1 == oj.getSortnum ("1234543215510000000000000000001556436567", เอาต์พุต));
-
-