[补题]匹配%#,%#之间的字符串重复%前的num遍
题目
匹配%#,%#之间的字符串重复%前的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遍的更多相关文章
- 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...
37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环, ...
- 【补题记录】ZJU-ICPC Summer Training 2020 部分补题记录
补题地址:https://zjusummer.contest.codeforces.com/ Contents ZJU-ICPC Summer 2020 Contest 1 by Group A Pr ...
- 2018 HDU多校第三场赛后补题
2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...
- 4.30-5.1cf补题
//yy:拒绝转载!!! 悄悄告诉你,做题累了,去打两把斗地主就能恢复了喔~~~ //yy:可是我不会斗地主吖("'▽'") ~~~那就听两遍小苹果嘛~~~ 五一假期除了花时间建模 ...
- Codeforces VP/补题小记 (持续填坑)
Codeforces VP/补题小记 1149 C. Tree Generator 给你一棵树的括号序列,每次交换两个括号,维护每次交换之后的直径. 考虑括号序列维护树的路径信息和,是将左括号看做 ...
- 【JOISC 2020 补题记录】
目录 Day 1 Building 4 Hamburg Steak Sweeping Day 2 Chameleon's Love Making Friends on Joitter is Fun R ...
- [数]补题ver.
上次补题好像把两次训练混在一起了,总之先按时间顺序补完这一次|ू・ω・` ) HDU-6301 不会的东西不能逃避.jpg 红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚 ...
- 2018 CCPC 桂林站(upc复现赛)补题
2018 CCPC 桂林站(upc复现赛)补题 G.Greatest Common Divisor(思维) 求相邻数的差值的gcd,对gcd分解素因子,对所有的素因子做一次遍历,找出最小答案. 几个样 ...
- 【春训团队赛第四场】补题 | 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 ...
随机推荐
- SpringSecurity权限管理系统实战—八、AOP 记录用户、异常日志
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- js中的寄生组合继承
function inheritProperty(subType, superType) { function F(){} F.prototype = superType.prototype; sup ...
- http请求工作流程
一.HTTP工作原理 HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端.HTTP协议采用了请求/响应模型.客户端向服务器发送一个请求报文,请求报文包 ...
- 中文、sci论文写作结构总结
全文建议:30-40篇参考文献,6-8个图,1-3表,<3000词. 一.题目 1.12~15个词,顶多18个词. 2.6个特点:specific.short.impressive.famili ...
- Java面试题(RabbitMQ篇)
RabbitMQ 135. rabbitmq 的使用场景有哪些? ①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列.就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通 ...
- [SCOI2013]摩托车交易 题解
思路分析 为了让交易额尽量大,显然我们需要尽量多地买入.对于每个城市,到达这个城市时携带的黄金受到几个条件的影响:之前卖出的黄金,之前能买入的最多的黄金,前一个城市到当前城市的路径上的最小边权.既然不 ...
- 使用Apache的反向代理会影响搜索引擎的收录和排名吗
http://www.wocaoseo.com/thread-292-1-1.html 百度官方观点:Baiduspider对站点的抓取方式和普通用户访问一样,只要普通用户能访问到的内容,我们就能抓取 ...
- WPF管理系统开发框架搭建指南,2020从入门到放弃
WPF技术是一个很不错的技术,但一直没有上手过正式的项目,趁在做这个医疗项目时,遂搭建一个WPF开发框架,目的是为了统一WPF开发并提高开发效率:我对WPF技术算是零基础,现学现卖,用这些不成体系的文 ...
- Jigsaw pre-training:摆脱ImageNet,拼图式主干网络预训练方法 | ECCV 2020
Jigsaw pre-training以拼图的方式从检测数据集中生成用于主干网络预训练的数据集,而不需要额外的预训练数据集,如ImageNet.另外为了让网络更好的适应拼图数据,论文提出ERF-ada ...
- 用python爬虫写一个属于自己的彩虹屁生成器!
效果图如下: