hihoCode#1039消除字符串
2015-09-11 12:10
337 查看
本来还想着有什么奇思妙想,想了半天没想出来,百度了一圈,大家都是暴力啊,so也写了个java暴力O(∩_∩)O~
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); int cases = scanner.nextInt(); while(cases != 0){ String str = scanner.next(); int maxScore = game(str); System.out.println(maxScore); cases--; } } private static int game(String str) { // TODO Auto-generated method stub StringBuffer preBuffer; String[] ABC = {"A","B","C"}; int length = str.length(); int score, maxScore = -1; for (int i = 0; i <= length; i++) { for (int j = 0; j < 3; j++) { preBuffer = new StringBuffer(str.substring(0, i)); preBuffer.append(ABC[j]); preBuffer.append(str.substring(i)); //System.out.println(i+"\t"+j+"\t"+preBuffer); score = eliminate(preBuffer); //System.out.println(score); if (score > maxScore) { maxScore = score; } } } return maxScore; } private static int eliminate(StringBuffer preBuffer) { // TODO Auto-generated method stub boolean changed = true; int start = 0, end = 0; int count = 0; while (changed) { changed = false; int n = preBuffer.length(); int i = n - 1; while (i >= 0) { start = i + 1; end = i + 1; while (i >= 1 && preBuffer.charAt(i) == preBuffer.charAt(i-1)) { changed = true; start--; i--; } if (start != end) { start = i; count += end - start; preBuffer.delete(start, end); } i--; } } return count; } }
相关文章推荐
- Android(java)学习笔记228:服务(service)之绑定服务调用服务里面的方法
- FileZilla FTP服务软件
- django - 验证码 django-simple-captcha 使用简介
- 从模板模式到JdbcTemplate
- 如何更改linux文件的拥有者及用户组(chown和chgrp)--- chown root:root testfile // 使用 chown 一次性修改拥有者及组
- 数组指针与指针数组
- 从模板模式到JdbcTemplate
- Android中的事件分发机制总结
- Nginx和LVS概述
- C++ Primer的课后规划问题的第八章
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
- MFC 多线程的使用
- [LeetCode] Perfect Squares 完全平方数
- 第二次作业
- 利用CSS三角形实现的冒泡框
- 图片压缩优化工具、在线配色
- C#高级------委托
- 微信企业号开发之微信考勤百度地图定位
- unity5在mx4下crash
- android 访问c# webservice 实现登陆注册功能(android 上传json到服务器)