国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java字符串替換排序實例

2019-11-26 15:46:27
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

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));
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳西县| 壤塘县| 台江县| 吴堡县| 龙南县| 黄梅县| 什邡市| 金门县| 闽清县| 陈巴尔虎旗| 汽车| 元阳县| 南城县| 南昌县| 河西区| 沾化县| 廊坊市| 玛纳斯县| 郸城县| 绥芬河市| 松溪县| 桂阳县| 南平市| 察隅县| 大城县| 易门县| 渑池县| 都匀市| 娱乐| 尉犁县| 天气| 乐亭县| 宝鸡市| 朔州市| 汕尾市| 兴义市| 萨迦县| 永平县| 象山县| 闽清县| 蒙山县|