`
YuHuang.Neil
  • 浏览: 191214 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Algorithm 06:删数问题

阅读更多
问题:键盘输入一个高精度的正整数N(N<=240位),去掉任意S个数字后剩下的数字按原来左右次序组成一个新的正整数。编程实现对给定的N和S,寻找一种解决方案,使得剩下的数最小。

例如,给定的N=178543,S=4,则得到的结果为13


答:实现代码如下:

/**
  * @author: YuHuang
  * @date: 2011-11-30
  * @summary: Just for fun.
  */

public class DeleteNumberProblem {

        public static String doDelete(String n,int s){
                char[] numberArray = n.toCharArray();
                int len = numberArray.length;

                if(len<=s) {
                        System.out.println("invalid s!");
                        return null;
                }else{
                        int deleteLength = 0;
                        int pos = 1;
                        while(pos<len){
                                if(numberArray[pos]<numberArray[pos-1]) {
                                        int i=pos;
                                        while(i<len){
                                                numberArray[i-1] = numberArray[i];
                                                ++i;
                                        }
                                        pos = pos>1 ? --pos:pos;
                                        --len;
                                        ++deleteLength;
                                }else{
                                        pos++;
                                }
                                if(deleteLength==s) break;
                        }

                        len = len-(s-deleteLength);
                }

                StringBuilder sb = new StringBuilder();
                for(int index=0;index<len;++index){
                        sb.append(numberArray[index]);
                }

                return sb.toString();
        }

        public static void main(String[] args) {
                String n = "178543";
                int s = 4;
                String result = DeleteNumberProblem.doDelete(n,s);
                System.out.println(result);
        }
}




代码运行结果:
Lab-Computer-0db2f6:JavaExercises labuser$ javac DeleteNumberProblem.java
Lab-Computer-0db2f6:JavaExercises labuser$ java DeleteNumberProblem
13
Lab-Computer-0db2f6:JavaExercises labuser$





分享到:
评论

相关推荐

    Java经典问题算法大全

    1.河内之塔.. 2.Algorithm Gossip: 费式数列. 3. 巴斯卡三角形 4.Algorithm Gossip: 三色棋 5.Algorithm Gossip: 老鼠走迷官(一) 6.Algorithm Gossip: 老鼠走迷... 21.Algorithm Gossip: 最大访客数等等经典问题详解

    经典算法大全.pdf

    洗扑克牌(乱数排列) 58 25.Algorithm Gossip: Craps赌博游戏 60 26.Algorithm Gossip: 约瑟夫问题(Josephus Problem) 62 27.Algorithm Gossip: 排列组合 64 28.Algorithm Gossip: 格雷码(Gray ...

    java.lang.RuntimeException: Unsupported algorithm: HmacSHA1解决方法

    java.lang.RuntimeException: Unsupported algorithm: HmacSHA1 解决方法,阿里云

    pentaho-aggdesigner-algorithm-5.1.5-jhyde-API文档-中文版.zip

    赠送jar包:pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar; 赠送原API文档:pentaho-aggdesigner-algorithm-5.1.5-jhyde-javadoc.jar; 赠送源代码:pentaho-aggdesigner-algorithm-5.1.5-jhyde-sources.jar; ...

    pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar

    可以解决,maven引入hive jar包时,hive Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde 问题

    pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar.zip

    解决maven引入hive的jar包时依赖报错Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde in xxx的问题,maven路径org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde/pentaho...

    经典算法大全

    包含各种经典的算法,如 1.河内之塔 4 2.Algorithm Gossip: 费式数列 5 3.... 4.Algorithm Gossip: 三色棋 7 5.Algorithm Gossip: 老鼠走迷官(一) 9 ... 13.Algorithm Gossip: 背包问题(Knapsack Problem ......

    pentaho-aggdesigner-algorithm-5.1.5-jhyde.tar

    解决 Cannot resolve org.pentaho:pentaho-aggdesigner-algorithm:5.1.5-jhyde jar放入D根目录执行: 以下命令加入本地maven库 mvn install:install-file -DgroupId=org.pentaho -DartifactId=pentaho-aggdesigner-...

    Algorithm.rar_Algorithm Gossip_gossip_gossip algorithm_gossip算法

    2.Algorithm Gossip: 费式数列 3. 巴斯卡三角形 4.Algorithm Gossip: 三色棋 5.Algorithm Gossip: 老鼠走迷官 6.Algorithm Gossip: 老鼠走迷官(二) 7.Algorithm Gossip: 骑士走棋盘 8.Algorithm Gossip: 八皇 9....

    pentaho-aggdesigner-algorithm-5.1.5-jhyde.zip

    org / pentaho / pentaho-aggdesigner-algorithm / 5.1.5-jhyde / pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar,解决maven引入hive的jar包时依赖报错Could not find artifact org.pentaho:pentaho-aggdesigner-...

    Algorithm::Evolutionary-开源

    在实际应用中,"Algorithm::Evolutionary"可以应用于诸多领域,例如工程优化问题、机器学习中的参数调优、游戏AI设计,甚至在艺术和音乐创作中寻找创新性的解决方案。其开源属性更是吸引了全球众多开发者的参与,...

    algorithm design foundations analysis and internet examples 中文版

    algorithm design foundations analysis and internet examples 中文版

    Algorithm::MatchingModel-开源

    本文将深入探讨开源项目"Algorithm::MatchingModel",这是一个用Perl语言编写的库,专为解决双面匹配问题而设计。 首先,我们要理解什么是双面匹配问题。在现实世界中,许多匹配场景涉及到两方之间的匹配,如学生与...

    pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar.7z

    "pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar"正是为了解决这个问题而提供的文件。 Pentaho Data Integration(简称PDI,又称Kettle)是一个开源的数据集成工具,它允许用户从各种不同的数据源抽取、转换和加载...

    Once Upon an Algorithm: How Stories Explain Computing

    面向初学者,深入浅出,通俗易懂的算法介绍。Once Upon an Algorithm: How Stories Explain Computing

Global site tag (gtag.js) - Google Analytics