题目链接:1084 外观数列 (20 point(s))

题目描述

外观数列是指具有以下特点的整数序列:

d, d1, d111, d113, d11231, d112213111, …

它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对应 d1)和 1 个 1(对应 11),所以第 3 项就是 d111。又比如第 4 项是 d113,其描述就是 1 个 d,2 个 1,1 个 3,所以下一项就是 d11231。当然这个定义对 d = 1 也成立。本题要求你推算任意给定数字 d 的外观数列的第 N 项。

输入格式

输入第一行给出 [0,9] 范围内的一个整数 d、以及一个正整数 N(≤ 40),用空格分隔。

输出格式

在一行中给出数字 d 的外观数列的第 N 项。

输入样例

1 8

输出样例

1123123111

Java代码

/**********************************************************************************
Submit Time Status Score Problem Compiler Run Time User
8/1/2019, 13:04:39 Accepted 20 1084 Java (openjdk) 88 ms wowpH
**********************************************************************************/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays; public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] dn = br.readLine().split(" ");
int n = Integer.parseInt(dn[1]); // 需要计算的项数 char[] oldArr = dn[0].toCharArray(); // 上一项
while ((--n) > 0) { // 循环n-1次
char[] newArr = new char[oldArr.length * 2];// 大小最多为2倍
int length = 0; // 当前项的字符个数
newArr[length++] = oldArr[0]; // 至少有1个字符
int number = 1; // 当前字符的连续的个数,至少1个
for (int i = 1; i < oldArr.length; ++i) {
if (oldArr[i] == newArr[length - 1]) {// 第i个字符和当前字符相同
++number; // 当前字符个数加1
} else { // 不同
newArr[length++] = (char) (number + 48);// 将个数添加到新数组中
newArr[length++] = oldArr[i]; // 下一个字符
number = 1; // 初始连续的个数为1
}
}
newArr[length++] = (char) (number + 48);// 最后1个的个数添加到新数组中
oldArr = Arrays.copyOf(newArr, length); // 拷贝新项到oldArr中
}
System.out.println(String.valueOf(oldArr)); // 转成字符串并输出
}
}

提交结果

PAT(B) 1084 外观数列(Java)的更多相关文章

  1. PAT Basic 1084 外观数列 (20 分)

    外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...

  2. PAT 乙级 1084. 外观数列 (20) 【字符串】

    题目链接 https://www.patest.cn/contests/pat-b-practise/1084 思路 用字符串模拟 然后要注意一点 它是连续的 才并在一起 就比如说 d, d1, d1 ...

  3. PAT乙级:1084 外观数列 (20分)

    PAT乙级:1084 外观数列 (20分) 题干 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d ...

  4. PAT 1084 外观数列(20)(代码+思路+推荐测试用例)

    1084 外观数列(20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 ...

  5. PAT 1084 外观数列

    https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120 外观数列是指具有以下特点的整数序列: d, ...

  6. 1084 外观数列 (20 分)C语言

    外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...

  7. 【PAT】B1084 外观数列(20 分)(纯C)

    第一层循环,用来循环计算第几个元素 第二层用来计算当前元素的下一个 #include<stdio.h> #include<string.h> char aaa[100000] ...

  8. P1084 外观数列

    转跳点:

  9. PAT Basic 1084

    1084 外观数列 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是 ...

随机推荐

  1. supervisor 管理进程 基本用法

    1. 我们使用brew管理,先搜索一下确认是否有我们需要的软件包 # davis @ XiaoWeis-MacBook-Pro in ~ [16:48:42] $ brew search superv ...

  2. redis渐进式 rehash

    转载(http://redisbook.com/preview/dict/incremental_rehashing.html) 上一节说过, 扩展或收缩哈希表需要将 ht[0] 里面的所有键值对 r ...

  3. php中函数 isset(), empty(), is_null() 的区别

    NULL:当你在你的脚本中写下这样一行代码 $myvariable; //此处你想定义一个变量,但未赋值.会有Notice: Undefined variable echo $myvariable + ...

  4. visual studio python快捷键

    打开交互式窗口: alt + i 智能提示: ctrl + j, or alt + ->

  5. Prometheus基于consul自动发现监控对象 https://www.iloxp.com/archive/11/

      Prometheus 监控目标为什么要自动发现 频繁对Prometheus配置文件进行修改,无疑给运维人员带来很大的负担,还有可能直接变成一个“配置小王子”,即使是配置小王子也会存在人为失误的情况 ...

  6. 使用NGINX+LUA实现WAF功能 和nginx 防盗链

    使用NGINX+LUA实现WAF功能 一.了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: WAF) ...

  7. VS2019,打开项目之后显示:System.NullReferenceException: 未将对象引用设置到对象的实例

    关闭项目,删除项目文件夹下的隐藏文件夹.vs和bin/obj文件夹

  8. Kotlin介绍

    Kotlin介绍 转 https://www.jianshu.com/p/d30406daaf25 Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Goo ...

  9. [转][osg]探究osg中的程序设计模式【目录】

    作者:3wwang 原文接连:http://www.3wwang.cn/html/article_104.html 前序 探究osg中的程序设计模式---开篇 探究osg中的程序设计模式---创造性模 ...

  10. Linux 服务器远程管理

    一.Linux 常用远程管理工具 点击下载 二.查看服务器 ip 地址命令 1.通过 ip addr 查看网卡 ip 地址 ip addr 2.通过 ifconfig 查看网卡 ip 地址 最小化安装 ...