网站建设制作软件叫啥,基于ssh框架的网站开发流程,苏州 网站的公司哪家好,杭州知名设计公司目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷#… 目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
为了提高数据传输的效率会对传输的报文进行压缩处理。
输入一个压缩后的报文请返回它解压后的原始报文。
压缩规则n[str]表示方括号内部的str正好重复n次。
注意
n为正整数取值范围0~100str只包含小写英文字母不考虑异常情况。原始报文长度不会超过1000不考虑异常的情况。
二、输入描述
输入压缩后的报文
不考虑无效的输入报文没有额外的空格方括号总是符合格式的要求原始报文不包含数字所有的数字只表示重复的次数n例如不会出现像5b或3[8]的输入
三、输出描述
解压后的原始报文。
输入输出说明3[k]2[mn]kkkmnmn3[m2[c]]mccmccmcc
四、解题思路
核心是正则表达式。
五、Java算法源码
package com.guor.od;import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class OdTest {public static void main(String[] args) {Scanner s new Scanner(System.in);String input s.nextLine();System.out.print(calculate(input));}public static String calculate(String input) {if (input null || .equals(input)) {return ;}Pattern pattern Pattern.compile([0-9]\\[[a-z]]);Matcher matcher pattern.matcher(input);if (!matcher.find()) {return input;}String group matcher.group();int index group.indexOf([);int counts Integer.parseInt(group.substring(0, index));String words group.substring(index 1, group.length() - 1);StringBuilder builder new StringBuilder();for (int i 0; i counts; i) {builder.append(words);}String find input.replace(group, builder.toString());return calculate(find);}
}六、效果展示
1、输入
3[k]2[mn]
2、输出
kkkmnmn
3、说明 下一篇华为OD机试 - 荒岛求生 - 栈StackJava 2023 B卷 100分
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。