`

java-求给定数字字符串去重后的最小整数

阅读更多

算法描述

  • 给定一个正整数,给出消除重复数字以后最小的整数,注意需要考虑长整数。
  • 输入示例:423234
  • 输出示例:234

算法实现

public class FindMinString extends Sort{

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String string = scanner.nextLine();
        int[] src = {string.charAt(0) - '0'};
        int[] dec = null;
        for(int i=0;i<string.length();i++){
        	int find = string.charAt(i) - '0';
	        int index = binarySearch(src, find,0, src.length - 1);
			if (index != -1) {
				System.out.println("index is :" + index + " value is :" + src[index]);
				continue;
			} else {
				dec = searchInsert(src, find);
				src = dec;
			}
        }
        printArray(src);
    }
    
    private static int[] searchInsert(int[] src, int i) {
		int left = 0;
		int right = src.length - 1;
		while (left <= right) {
			int middle = (right + left) / 2;
			if (src[middle] < i) {
				left = middle + 1;
			} else {
				right = middle - 1;
			}
		}
		int[] dec = Arrays.copyOf(src, src.length + 1);
		int decL = dec.length - 1;
		while (decL >= left) {
			if (decL == left) {
				dec[left] = i;
				break;
			}
			dec[decL] = dec[decL - 1];
			decL--;
		}
		return dec;
	}

	private static int binarySearch(int[] src, int i, int left, int right) {
		while (left <= right) {
			int middle = (right + left) / 2;
			if (src[middle] == i) {
				return middle;
			} else if (src[middle] < i) {
				left = middle + 1;
			} else {
				right = middle - 1;
			}
		}
		return -1;
	}
}

 

 

分享到:
评论

相关推荐

    swift-PFColorHash-根据给定的字符串生成颜色

    在Swift编程语言中,`PFColorHash`是一个用于根据给定的字符串生成独特颜色值的库。这个库的目的是为了帮助开发者在UI设计中创建基于数据的唯一颜色,例如为表单中的每个条目生成不同的背景色,或者为数据点分配易于...

    js-utils-给定两个字符串s和t

    js 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t 给定两个字符串s和t

    C语言程序设计-求给定正整数m以内的素数之和;例如:当m=20时,函数值为77;

    C语言程序设计-求给定正整数m以内的素数之和;例如:当m=20时,函数值为77;

    C语言程序设计-求一个给定字符串中的字母的个数.c

    C语言程序设计-求一个给定字符串中的字母的个数.c

    Boyer-Moore法实现字符串匹配(java)

    在给定的java代码中,模式字符串`P`为`{'B','A','R','B','E','R'}`,文本字符串`T`为`{'J','I','M',' ','S','A','W',' ' ,'M','E',' ' ,'I'}`。使用Boyer-Moore算法可以快速地找到匹配的位置。 Boyer-Moore算法是一...

    C语言程序设计-求给定正整数n以内的素数之积;(n&lt;28).c

    C语言程序设计-求给定正整数n以内的素数之积;(n).c

    java字母数字混搭字符串排序[归类].pdf

    java 字符串数字混搭字符串排序[归类] ...在实际应用中,java 字符串数字混搭字符串排序的应用非常广泛,例如在数据库查询结果中对字符串数字混搭字符串进行排序,在文件名排序中对字符串数字混搭字符串进行排序等等。

    java字符串类型数字设置千分位分隔

    在给定的场景中,我们需要处理三种类型的数字:整数、带有小数点的数字以及负数,并且需要确保输入是有效的数字字符串。 首先,我们需要了解`DecimalFormat`类。它是`java.text`包下的一个类,主要用于格式化十进制...

    validate-npm-package-name, 给定字符串是否可以接受的npm包名称?.zip

    validate-npm-package-name, 给定字符串是否可以接受的npm包名称? validate-npm-package-name给我一个字符串,我告诉你它是否是有效的npm 包名称。这个软件包导出一个带有 string 作为输入并返回具有两个属性的对象...

    求字符串中的第一个数字

    根据给定的信息,我们可以分析并总结出以下与“求字符串中的第一个数字”相关的知识点: ### 1. 字符串操作基础 #### 1.1 字符串简介 在 Java 中,`String` 类用于表示不可变的字符序列,即字符串。字符串在 Java ...

    Java根据正则表达式生成字符串—Xeger,automaton

    在这个例子中,我们创建了一个Xeger实例,然后调用其generate()方法,它将返回一个符合给定正则表达式(本例中为只包含字母和数字的字符串)的随机字符串。 另一方面,automaton(有限状态自动机)是一种计算模型,...

    字符串的对比与替换

    编写程序:从键盘上输入一个包含10个字符的字符串,把该字符串与程序中给定的字符串("bacdbcabca") //依次比较,统计两个字符串对应字符相等的数目。然后输出从键盘上输入的字符串, //并把两个字符串中对应字符不...

    Java程序从给定的字符串中获取一个字符.docx

    这里我们将详细探讨如何从给定的字符串中提取一个特定位置的字符,以及几种不同的实现方法。 首先,最常用且直观的方法是通过 `String.charAt()` 函数。这个方法接受一个整数参数,表示字符串中的索引位置,然后...

    Java获取随机字符串

    本文将详细介绍如何在Java中生成随机字符串,并且会结合给定的部分代码示例进行深入分析。 #### 基本原理与方法 Java提供了多种方法来生成随机字符串,主要包括使用`java.util.Random`类和`java.security....

    字符串重新排序

    在Java中,我们可以创建一个字符数组来存储原始字符串的每个数字,然后使用各种排序算法(如冒泡排序、快速排序或内置的Arrays.sort()方法)对数组进行排序。排序完成后,将排序后的数组转换回字符串,即可得到重新...

    动态规划算法--1-26对应a-z字符串转换

    动态规划算法:从1到26分别对应a-z的每一个字母,输入一串数字的字符串,转换为字母,输出所有可能的字母序列。如123-&gt;abc、lc、aw 本资源是按照二叉树的思想解决该问题。从字符串的头部开始,每次可以取一个或者两...

    编辑距离问题 对于给定的字符串A和字符串B,编程计算其编辑距离d(A,B)。

    编辑距离指的是通过一系列预定义的操作(如插入、删除或替换字符)将一个字符串转换为另一个字符串所需的最小操作次数。这个问题在自然语言处理、生物信息学以及文本比对等领域有着广泛的应用。 #### 二、编辑距离...

    OJ_在字符串中找出连续最长的数字串

    它要求我们从一个给定的字符串中找到最长的一段连续的数字序列。这个问题涉及到字符串遍历、字符判断以及动态规划或滑动窗口等算法技巧。 首先,我们要明确问题的关键在于如何识别和提取数字串。在C语言中,我们...

    java编程统计字符串的字母,数字,空格,其他

    java编程统计一个字符串中的字母,数字,空格,其他,输入一个字符串,就会输出字符串中包含的字母,数字,空格,其他

Global site tag (gtag.js) - Google Analytics