[BNUZOJ1261][ACM][2016北理校赛]方块消除(栈,字符串)

时间:2021-07-25 08:20:45

玩过方块消除游戏吗?
现在规定当有两个或两个以上相邻且颜色相同的方块在一起的时候,它们就会产生消除反应。当存在多个消除反应同时产生时,最下的反应先执行。
现在只给你其中一列,求最后剩下的方块结果。


输入要求

第一行是一个整数T(T<=100),表示有T组测试数据。
每组测试数据一行。
每行有一串数字(数字长度<=1,000,000),按从下往上给出一列方块的颜色(颜色用0-9表示,每个数字代表一种颜色)。
(数字长度大于100,000的不超过5组)

输出要求

输出消除后的结果。

测试数据示例

输入

2
1800081
180008945541
 

输出

(空行)

 
没什么特别的.水题了,主要是利用栈的思想,字符串搞搞就行了(这里我用Java的StringBUffer)
 
Code:
 
package bnuzoj1261;

import java.util.Scanner;

public class Main {

    public static void run( String str ) {

        StringBuffer sb = new StringBuffer();
char[] chs = str.toCharArray();
sb.append( chs[ 0 ] );
for( int i = 1; i < str.length(); ) {
if(sb.length() < 1){
sb.append( chs[i] );
i++;
}
else if( chs[ i ] != sb.charAt( sb.length()-1 ) ) {
sb.append( chs[i] );
i++;
} else {
if( chs[i] == sb.charAt( sb.length()-1 )){
do{
i++;
}while(i<chs.length && chs[i] ==sb.charAt( sb.length()-1 ));
sb.delete(sb.length()-1,sb.length());
}
}
}
System.out.println( sb.toString() );
} public static void main( String[] args ) {
Scanner sc = new Scanner( System.in );
int T = sc.nextInt(); while( T-- > 0 ) {
String str = sc.next();
run( str );
}
} }

Ps:注意消除是左边优先.

 
 

[BNUZOJ1261][ACM][2016北理校赛]方块消除(栈,字符串)的更多相关文章

  1. 北邮校赛 I&period; Beautiful Array(DP)

    I. Beautiful Array 2017- BUPT Collegiate Programming Contest - sync 时间限制 1000 ms 内存限制 65536 KB 题目描述 ...

  2. 北邮校赛 H&period; Black-white Tree (猜的)

    H. Black-white Tree 2017- BUPT Collegiate Programming Contest - sync 时间限制 1000 ms 内存限制 65536 KB 题目描述 ...

  3. 北邮校赛 F&period; Gabriel&&num;39&semi;s Pocket Money(树状数组)

    F. Gabriel's Pocket Money 2017- BUPT Collegiate Programming Contest - sync 时间限制 2000 ms 内存限制 65536 K ...

  4. Nowcoder 北师校赛 B 外挂使用拒绝 &lpar; k次前缀和、矩阵快速幂打表找规律、组合数 &rpar;

    题目链接 题意 : 中文题.点链接 分析 : 有道题是问你不断求前缀和后的结果 Click here 这道题问的是逆过程 分析方法雷同.可参考 Click here ----------------- ...

  5. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  6. 2014上半年acm总结(1)(入门&plus;校赛)

    大一下学期才开始了acm,不得不说有一点迟,但是acm确实使我的生活充实了很多,,不至于像以前一样经常没事干=  = 上学期的颓废使我的c语言学的渣的一笔..靠考前突击才基本掌握了语法 寒假突然醒悟, ...

  7. 2014哈商大ICPC&sol;ACM校赛解题报告

    被debug邀请去參加校赛,哎,被虐..我对不起工大.. 由于本人不搞ACM,算法处于HelloWorld水准.. 虽然题目除了鸟不拉屎星人之外都非常水,但我能做到这个程度,全然是超水平发挥了.. 数 ...

  8. 【ACM之行】◇第一站◇ 2018HDU多校赛总结

    ◇第一站◇ 2018HDU多校赛 十场多校赛下来,也算是给一个初中生开了眼界……看着清华一次次AK(默默立下flag),看着自己被同校的高中生完虐,一个蒟蒻只能给dalao们垫脚

  9. 2018&period;10&period;2浪在ACM 集训队第二次测试赛

    2018.10.26 浪在ACM 集训队第二次测试赛 题目一览表 来源 考察知识点 A 1273 海港 NOIP 普及组 2016 差分数组+二分 B 1274 魔法阵     C 1267 金币   ...

随机推荐

  1. Web API 简单示例

    一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...

  2. 【BZOJ】4636&colon; 蒟蒻的数列

    4636: 蒟蒻的数列 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 145  Solved: 71[Submit][Status][Discuss] ...

  3. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  4. DeepLearnToolbox使用总结

    GitHub链接:DeepLearnToolbox DeepLearnToolbox A Matlab toolbox for Deep Learning. Deep Learning is a ne ...

  5. Android 应用内多语言切换

    最近公司的 App 里需要用到多语言切换,简单来说,就是如果用户没有选择语言选项时,App 默认跟随系统语言,如果用户在 App 内进行了语言设置,那么就使用用户设置的语言.当然,你会发现,App 的 ...

  6. 记一次生产环境Nginx日志骤增的问题排查过程

    摘要:众所周知,Nginx是目前最流行的Web Server之一,也广泛应用于负载均衡.反向代理等服务,但使用过程中可能因为对Nginx工作原理.变量含义理解错误,或是参数配置不当导致Nginx工作异 ...

  7. DAO层设计Junit测试

    DAO层的设计: 在实际的开发中有一种项目的程序组织架构方案叫做MVC模式. MVC模式就是按照程序的功能将它们分成三层,分别是Modle层 (模型层).View(显示层).Controller(控制 ...

  8. 页面适配的小栗子 - github

    我模拟了一个QQ音乐的radiostation页面,用了媒体查询以及流式布局,页面大部分内容是js根据json生成的,使用了less来编写css样式表. 下面是仓库地址,感兴趣的小伙伴可以打开看看,将 ...

  9. 嵌入式Linux开发之uboot启动Linux整体流程分析

    嵌入式Linux开发之uboot启动Linux整体流程分析 Uboot全称Universal Boot Loader,一个遵循GPL协议的的开源项目,其作用是引导操作系统,支持引导linux.VxWo ...

  10. JAVA调用外部安装7-Zip压缩和解压zip文件

    1.首先在本地安装7-Zip(下载链接:https://www.7-zip.org/)2.调用7-Zip压缩.zip文件: /**      * 生成.zip压缩文件      * @param fi ...