题目链接: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. mysql 使用的三个小技巧

    mysql 使用的三个小技巧 快速阅读 Mysql查询工具中如何查询多条语名,Mysql中如何设置变量,Mysql中如何查特定字段,后面再加* Mysql查询工具中如何查询多条语名 默认myslq只能 ...

  2. book-rev8 Chapter 0 Operating system interfaces

    Chapter 0 第0章 Operating system interfaces 操作系统接口 The job of an operating system is to share a comput ...

  3. Oracle 12c 新特性 --- 新增对数据泵操作的审计跟踪

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/leo__1990/article/details/90199263 概念 Oracle Data P ...

  4. 高通平台打开 dynamic debug方法【学习笔记】

    一.首先在内核的配置文件添加如下的配置: CONFIG_DEBUG_FS=y CONFIG_DYNAMIC_DEBUG=y 二.找到自己平台对应的 device/qcom/xxxx/init.targ ...

  5. SonarQube入门【转】

    一.SonarQube简介Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar可以集成不同的测试工具,代码分析工具, 以及持续集成工具. 比如pmd-cpd.checkstyle.f ...

  6. html访问图片资源403问题(http referrer)

    前言 之前碰到一个问题,就是html中通过img标签引入一个图片地址,报403.但是这个图片地址直接复制出来在地址栏打开,却是看得到的.     先说下解决方法: 在HTML代码的head中添加一句& ...

  7. GIS地理工具案例教程——栅格分割

    GIS地理工具案例教程--栅格分割 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 目的:利用多边形要素类去分割栅格,每个多边形裁剪出对应的范围 ...

  8. c代码审查软件

    1. Coccinelle http://coccinelle.lip6.fr/

  9. Python设计模式之MVC模式

    # -*- coding: utf-8 -*- # author:baoshan quotes = ('A man is not complete until he is married. Then ...

  10. openresty开发系列19--lua的table操作

    openresty开发系列19--lua的table操作 Lua中table内部实际采用哈希表和数组分别保存键值对.普通值:下标从1开始 不推荐混合使用这两种赋值方式. local color={fi ...