`
daisy8564
  • 浏览: 75627 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

不重复数(一道编程题)

    博客分类:
  • JAVA
阅读更多
Problem Statement:
如果一个数字十进制表达时,不存在连续两位数字相等,则称之为“不重复数”。例如,105,1234和12121都是“不重复数”,而11,100和1225不算。给定一个long类型数字A,返回大于A的最小“不重复数”。
Definition:
Class: UnrepeatingNumbers
Method: next
Parameters: long
Returns: long
Method signature: long next(long A)
(be sure your method is public)

Constraints:
A 取值范围是[0, 10^17],注意是闭区间。
Examples:
0) 54
returns: 56
大于54的最小数字是55,但55不是“不重复数”。下一个数字是56,它满足条件。

1) 10
returns: 12

2) 9
returns: 10

3) 98
returns: 101
99和100都不是“不重复数”, 101是。

4) 21099
returns: 21201

public class UnrepeatingNumbers {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		UnrepeatingNumbers un = new UnrepeatingNumbers();
//		System.out.println(un.next(54));
//		System.out.println(un.next(10));
//		System.out.println(un.next(9));
//		System.out.println(un.next(98));
//		System.out.println(un.next(21099));
		long num = Long.parseLong("1010");
		System.out.println(un.next(num));
	}
	
	public long next(long A){
		long num = 0;
		
		String s = "";
		boolean found = false;
		long max = Long.parseLong("100000000000000000");
		if(A<0 || A > max){
			System.out.println("Out of Range!!!!");
			return 0;
		}
		while(!found){
			A++;
			System.out.println("A:"+A);
			s = String.valueOf(A);
			if(isUnrepeat(s)){
				found = true;
			}
		}
		
		num = A;
		return num;
	}
	
	private boolean isUnrepeat(String s){
		for(int i=0;i<s.length()-1;i++){
			if(s.charAt(i)==s.charAt(i+1)){
				return false;
			}
		}
		return true;
	}
	

}
分享到:
评论

相关推荐

    ZJU_ACM_All_Anwer 搞编程的都知道的浙江大学A 题库.本书 集了所有经 Z 题解集,集合并附 Mathimaticsumerical algorithms 数值算法

    1572 Bracelet 题义不明,感觉可能是判定欧拉回路的存在性,但是过不去 1133 Smith Numbers 没有完美解决,数学 1080 Direct Subtraction 尚未解决,我过的程序是错的,想和您讨论~~~ 1229 Gift?! SRbGa的经典题...

    基于Office和VBA的通用图文试题库系统

    指定组卷时各章、各题型、各难度的试题的抽取数量后,系统可统计出抽取的总题数,总分数。 3.生成试卷 按照预先设置或临时制定的组卷策略,即各章、各题型、各难度的抽题数量,进行随机或排他抽题,组成试卷和...

    VBA题库管理系统 信息初始化 生成试卷

    用其内嵌的编程语言VBA进行二次开发得到的应用软件,既可以使繁琐、重复操作自动化,提高工作效率和应用水平,同时又不改变Word原有的界面风格、系统功能和操作方式,特别是它的编辑、排版、打印功能。用户不必经过...

    每日一道算法面试题(1):leetcode1两数之和

    但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 算法思路: 暴力法:使用两层循环,外层循环计算当前元素与 ...

    UNIX高级编程 计算机科学丛书

    与大多数操作系统一样,Unix对程序运行提供了大量的服务—打开文件、读文件、启动一道新程序、分配存储区以及获得当前时间等。这些被称之为系统调用界面(system call interface)。另外,标准C库提供了大量C程序...

    毕业设计(带论文)—试卷生成系统.rar

    3. 试题支持单项选择题,判断题,填空题,编程题等题型,用户可以自由设置题型,试题内容包括内容,标准答案等属性,提供可以自由设置的试卷分类;多种试卷生成方式,可以设定参数自动生成或者手工选择试题,题库中...

    世界500强面试题.pdf

    第一篇 面试题 ................................................................................ 8 1.1. 简介 ................................................................................................

    IOI国家集训队论文集1999-2019

    李锐喆 -《细节——不可忽视的要素》 鬲 融 -《浅谈特殊穷举思想的应用》 周 源 -《浅谈数形结合思想在信息学竞赛中的应用》 朱晨光 -《优化,再优化!》 肖 天 -《"分层图思想"及其在信息学竞赛中的应用》 汪 ...

    PHP获取文件扩展名的常用方法小结【五种方式】

    这是我应聘实习时遇到的一道笔试题: 使用五种以上方式获取一个文件的扩展名。 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 ...

    如何学习ACM,看后受益匪浅

    大家都是抱着对算法与数据结构极大的兴趣才参加集训的,我们也希望大家学有所成,但是刚刚接触信息学领域的同学往往存在很多困惑,不知道从何入手学习,在这篇向导里,我希望能将自己不多的经验与大家分享,希望对各位...

    算法基础.打开算法之门.[美]托马斯 H.科尔曼(带详细书签)

    它既没有对计算机算法领域进行广度或深度的研究,也没有遵照惯例来讲述设计计算机算法的方法,甚至连一道需要读者自己求解的难题或者练习题也没有。 那么,这是一本什么样的书呢?如果你符合如下条件,那么就可以...

    C/C++面试题目及解答.doc

    (华为笔试题) 答案:只要基类在定义成员函数时已经声明了virtue关键字,在派生类实现的时候覆盖该函数时,virtue关键字可加可不加,不影响多态的实现。子类的空间里有父类的所有变量(static除外)。 &lt;br&gt;5.给...

Global site tag (gtag.js) - Google Analytics