题目

匹配%#,%#之间的字符串重复%前的num遍。

样例1:

3%acm#2%acm#

输出:

acmacmacmacmacm

样例2:

3%2%acm##

输出:

acmacmacmacmacm

题解

两个栈实现。

算是做出来,只是bug差一点调完。

主要还是要熟悉java栈的使用。

代码

import java.util.Scanner;
import java.util.Stack; public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String s=new String();
s=sc.next(); Stack<Character> ss=new Stack<>();//装原始字符串
Stack<Character> ssPre=new Stack<>();//装#前面的部分,待遇到#弹出处理 for(int j=s.length()-1;j>=0;--j) {//倒序入栈
ss.push(s.charAt(j));
} while(!ss.empty()) {
Character c=ss.pop();
if(c=='#') {
Stack<Character> sTemp=new Stack<>();
Character cTemp;
while((cTemp=ssPre.pop())!='%') {
sTemp.push(cTemp);
}
int num=(int)(ssPre.pop()-'0'); String strTemp=new String();//需要重复的串
String strConn=new String();//重复后的串
while(!sTemp.empty()) {
strTemp+=sTemp.pop();
}
while(num!=0) {
strConn+=strTemp;
--num;
}
for(int i=0;i<strConn.length();++i) {
ssPre.add(strConn.charAt(i));
}
}
else {//没遇到#号则弹出入栈ssPre
ssPre.add(c);
}
} Stack<Character> sAns=new Stack<>();
while(!ssPre.empty()) {
sAns.add(ssPre.pop());
}
String strAns=new String();
while(!sAns.empty()) {
strAns+=sAns.pop();
} System.out.println(strAns);
}
}

[补题]匹配%#,%#之间的字符串重复%前的num遍的更多相关文章

  1. 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...

    37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环, ...

  2. 【补题记录】ZJU-ICPC Summer Training 2020 部分补题记录

    补题地址:https://zjusummer.contest.codeforces.com/ Contents ZJU-ICPC Summer 2020 Contest 1 by Group A Pr ...

  3. 2018 HDU多校第三场赛后补题

    2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...

  4. 4.30-5.1cf补题

    //yy:拒绝转载!!! 悄悄告诉你,做题累了,去打两把斗地主就能恢复了喔~~~ //yy:可是我不会斗地主吖("'▽'") ~~~那就听两遍小苹果嘛~~~ 五一假期除了花时间建模 ...

  5. Codeforces VP/补题小记 (持续填坑)

    Codeforces VP/补题小记 1149 C. Tree Generator 给你一棵树的括号序列,每次交换两个括号,维护每次交换之后的直径. ​ 考虑括号序列维护树的路径信息和,是将左括号看做 ...

  6. 【JOISC 2020 补题记录】

    目录 Day 1 Building 4 Hamburg Steak Sweeping Day 2 Chameleon's Love Making Friends on Joitter is Fun R ...

  7. [数]补题ver.

    上次补题好像把两次训练混在一起了,总之先按时间顺序补完这一次|ू・ω・` ) HDU-6301 不会的东西不能逃避.jpg 红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚 ...

  8. 2018 CCPC 桂林站(upc复现赛)补题

    2018 CCPC 桂林站(upc复现赛)补题 G.Greatest Common Divisor(思维) 求相邻数的差值的gcd,对gcd分解素因子,对所有的素因子做一次遍历,找出最小答案. 几个样 ...

  9. 【春训团队赛第四场】补题 | MST上倍增 | LCA | DAG上最长路 | 思维 | 素数筛 | 找规律 | 计几 | 背包 | 并查集

    春训团队赛第四场 ID A B C D E F G H I J K L M AC O O O O O O O O O 补题 ? ? O O 传送门 题目链接(CF Gym102021) 题解链接(pd ...

随机推荐

  1. 准确率99.9%的离线IP地址定位库

    Ip2region是什么? ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nod ...

  2. 在GitHub上删除仓库 or 项目,基操!!

    创建错误或者想要抛弃某个仓库or项目,点击选择项目,选择Setting页面,左侧方框Option页拉到底: 你就可以看到一个红色的危险域,called Danger Zone,这不禁让我想到了黑子篮球 ...

  3. RocketMQ在windows环境下的安装(转)

    原博地址:https://www.jianshu.com/p/4a275e779afa 一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 二. RocketMQ部署 ...

  4. 在laravel中遇到并发的解决方案

    1,在mysql中创建唯一索引,在代码中try catch mysql的1062错误 2.将存在并发的代码丢给队列异步处理.这种解决方案的问题是,接下来的代码不能依赖队列的处理结果 3.使用mysql ...

  5. Magento 2 Factory Objects

    In object oriented programming, a factory method is a method that’s used to instantiate an object. F ...

  6. Charles 断点修改Response

    前言: 我们可以通过map功能进行重定向,但如果同一个域名进行的是不同请求与返回.此时map在这里就不适用了. 我们可以通关对某一请求进行断点,在进行修改请求或者返回.这样就可以满足我们的需求了. 一 ...

  7. Elementor如何隐藏页面上的标题(2种办法)

    原文首发于:https://loyseo.com/how-to-hide-page-title-in-elementor/ 本文介绍两种隐藏Elementor页面默认标题的方法,一种是单个隐藏,一种是 ...

  8. 细说强网杯Web辅助

    本文首发于“合天智汇”公众号 作者:Ch3ng 这里就借由强网杯的一道题目“Web辅助”,来讲讲从构造POP链,字符串逃逸到最后获取flag的过程 题目源码 index.php 获取我们传入的user ...

  9. 模拟退火详解&P1433题解

    前排提示:LZ是个菜比,有可能有讲的不对的地方,请在评论区指出qwq 0.基本思想 模拟退火其实没有那么高大上.说白了就是初始化一个"温度".每次随机乱选一个方案,如果比以前的方案 ...

  10. Javascript常见数据类型API

    1 - 内置对象 1.1 内置对象 ​ JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象 ​ 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象 ...