程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java字符串調換排序實例

java字符串調換排序實例

編輯:關於JAVA

java字符串調換排序實例。本站提示廣大學習愛好者:(java字符串調換排序實例)文章只能為提供參考,不一定能成為您想要的結果。以下是java字符串調換排序實例正文



import java.util.LinkedList;

public class OJ {

 public OJ() {
  super();
 }

 /*
  * 功效:輸出一行數字,假如我們把這行數字中的'5'都算作空格,那末就獲得一行用空格分隔的非負整數(能夠有些整數以'0'開首,這些頭部的'0'應當被疏忽失落
  * ,除非這個整數就是由若干個'0'構成的,這時候這個整數就是0)。 對這些非負整數按從年夜到小的次序排序。
  *
  * 輸出: input,由0~9數字構成的字符串。
  * 輸出數據請求:不過數字字符,長度年夜於0且不年夜於1000,分隔獲得的非負整數不會年夜於100000000,輸出數據弗成能全由'5'構成。
  *
  * 輸入:output,字符串,是分隔獲得的非負整數排序成果(從年夜到小),相鄰整數間用一個空格離開,第一個整數前及最初一個整數後無空格。
  *
  * 前往:正常前往0,若異常掉敗前往-1。
  */

 public static int getSortNum(final String input, final StringBuilder output) {

  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("")) {
    try {
     temp = Integer.valueOf(nums[i]);
     if(temp > 100000000){
      return -1;
     }
     if (sorted.isEmpty()) {
      sorted.addFirst(temp);
      j++;
     } else {

      while (k > 0 && (temp > sorted.get(k - 1))) {
       k--;
      }
      sorted.add(k, temp);
      j++;
     }
    } catch (Exception ex) {
     return -1;
    }
   }
  }
  for (int i = 0; i < sorted.size() - 1; i++) {

   output.append(sorted.get(i) + " ");

  }
  output.append(sorted.getLast());
  output.trimToSize();

  return 0;
 }
}       

測試用例:


import junit.framework.Assert;
import junit.framework.TestCase;


public class OJTest extends TestCase
{

    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("123454321555000000000056436567", output) && "6436 4321 1234 67 0".equals(output.toString()));
    }

    public void testCase05()
    {
        final StringBuilder output = new StringBuilder();
        Assert.assertTrue(-1 == OJ.getSortNum("1234543215510000000000000001556436567", output));
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved