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;
}
}
分享到:
相关推荐
标题 "100道经典C程序编程题" 涉及到的是C语言编程实践的知识领域,这是一门基础且重要的计算机科学语言。对于初学者来说,通过解决编程题是提高编程技能、理解和掌握C语言语法的最佳途径。下面将详细讨论这些编程...
根据给定的信息,这是一道Java编程题目,其主要功能是将阿拉伯数字转换为中文大写数字,并且处理包括整数部分与小数部分在内的数值。下面将详细解析该题目中的核心知识点。 ### 核心知识点分析 #### 1. 数组与常量...
3. **字典和集合**:字典是键值对的容器,集合则是一组不重复元素的无序组合。这两个数据结构在实际问题中有着广泛的应用,如数据去重、查找关联等。 4. **字符串操作**:Python对字符串提供了丰富的内置方法,如...
文件名"48941918"可能代表一道具体的编程题,但具体题目内容无法从这个名称中得知。通常,这类题目会涉及字符串操作、数组处理、数学逻辑、模拟法等多方面知识。例如,可能需要你实现一个函数,检查字符串是否为回文...
【Python五级等级考试编程题解析】 在青少年软件编程(Python五级)等级考试中,学生需要具备扎实的Python基础知识,包括数据结构、算法、控制流等。以下是对试卷中三道编程题目的详细解析: **第一题:找出列表中...
本章节的课后习题及编程题答案能够帮助学习者更好地理解和掌握这些知识点,并通过实践加深对C语言的理解。 #### 二、知识点详解 ##### 1. 编写程序,调用函数求一个圆柱体的表面积和体积 **知识点**:本题考查了...
### C++编程练习题知识点详解 #### 数字猜想 **知识点概述:** 此题考查的是逻辑推理能力与C++编程技巧。题目要求根据一系列猜测及其反馈来确定一个秘密数字。反馈由两部分组成:A 表示数字和位置完全正确的数量;...
本题目是一道在线判题系统(Online Judge,简称OJ)中的编程题,要求使用C语言来解决。具体任务是找出所有小于65536,并且同时是完全平方数的回文数。 首先,我们需要了解如何判断一个数是否为回文数。一种方法是将...
- **最接近的三数之和**:该题的目标是在一个数组中找到三个数,使得它们的和与目标值最接近。常用的解法是先对数组进行排序,然后使用双指针技术逐个枚举数组中的元素,寻找最佳解。 - **移除元素**:此题要求从一...
在这个题目中,参赛者需要处理一道模糊的算式问题。题目给出的是一个格式为“a [ ] b = c”的算式,其中“[ ]”表示未知的运算符,而a、b和c都是1到9之间的不同数字。任务是输入一个运算符(+、-、* 或 /),并计算...
### 国信蓝桥杯四川赛区2012年Java组最后一道...通过以上解析,我们可以看出,这道题不仅考验了参赛者的编程基础,还要求他们具备一定的算法设计能力和代码优化意识。在实际的竞赛或工作中,这些技能同样是非常重要的。
题目要求在Java编程环境下,解决一道银行春季招聘笔试题。该题目涉及的主要知识点包括: 1. **输入处理**:程序需要从用户那里接收两个整数x和y,分别表示两个有序数列的长度,以及接下来的x和y个有序整数。这可以...
例如,给定数字1234,我们需要找出所有可能的不重复的三位数组合。 **示例代码**: ```c #include int main() { int i, j, k; printf("\n"); for (i = 1; i ; i++) { for (j = 1; j ; j++) { for (k = 1; k ...
"C语言编程练习题大全" 本资源摘要信息是基于(完整版)C语言编程练习题绝对经典...回数猜想:任取一个数,再把它倒过来,并把这两个数相加,然后把这个和数再倒过来,与原和数相加,重复此过程,一定能获得一个回数。
### hadoop2面试题 - 2012腾讯笔试的一道算法题 #### 背景与题目概述 本文档提供了2012年腾讯笔试中一道关于字符串处理的算法题,该题目要求将字符串中的所有大写字母移动到字符串的末尾,同时保持其他字符的相对...
这些练习题覆盖了Java的核心概念,包括但不限于变量、数据类型、控制结构、函数、类与对象、继承、多态以及异常处理等关键知识点。 1. 变量与数据类型:在Java中,变量是用来存储数据的容器,数据类型决定了变量...
标题中的“算法-矩阵中不重复的元素(51Nod-1024)”指的是一道编程挑战,源自51nod在线编程学习平台的第1024题。这道题目要求我们从一个二维矩阵中找出所有不重复的元素。在计算机科学和编程领域,这类问题属于数据...
第15题“三数之和”(Three Sum)是其中一道经典的问题,对于初学者来说,它是一个很好的实践题目,能够帮助理解数组处理和两指针技术。 该题目的目标是在一个整数数组`nums`中找到所有唯一三元组`(i, j, k)`,使得...
找出所有满足条件且不重复的三元组。 解题思路: 1. 首先,我们可以对数组进行排序,这样可以减少后续比较的次数。 2. 使用双指针法,设置两个指针i和j,分别从数组的头和排序后的第二个元素开始。初始化一个变量k...