算法提高 项链

时间限制:1.0s 内存限制:512.0MB

问题描述

  由 n(1≤n≤100)  个珠子组成的一个项链,珠子有红、蓝、白三种颜色,各种颜色的珠子的安排顺序由键盘输入的字符串任意给定。蓝色用小写字母b表示,红色用小写字母r表示,  白色用小写字母w表示.

假定从项链的某处将其剪断,把它摆成一条直线。先从左端向右收集同色珠子,遇到第一个异色珠子时停止.  收集过程中, 白色是一种特殊颜色, 既可以看成红色也可以看成蓝色。然后再从剩余珠子的右端向左重复上述过程。

例如:对下图一所示的项链, 如果从图一中标记的位置0处剪断,  则按顺时针顺序得到wbbbwwrrbwbrrwb(如图二所示)。这时从左端开始收集可以得到wbbbww,  共6个珠子;然后从剩余珠子右端开始收集得到wb,共2个珠子。这种剪法共可收集到6+2=8个珠子。 如果从图一中标记的位置4处剪断,  则按顺时针顺序得到wwrrbwbrrwbwbbb(如图二所示)。这时从左端收集可以得到wwrr,共4个珠子;然后从剩余珠子右端收集可以得到wbwbbb,共6个珠子。这种剪法共可收集到4+6=10个珠子。

要求: 在项链中选择合适的剪断位置, 使得从左右两端收集到的珠子数目之和最大,输出收集到的珠子数的最大值M。

输入格式

  由小写字母b,r,w组成的字符串。此字符串记录了一个首尾相接的项链从某处断开后,按顺时针顺序得到的珠子的直线排列。

输出格式

  收集到的珠子数的最大值 M

样例输入

wbbbwwrrbwbrrwb

样例输出

10

import java.util.Scanner;

public class 项链 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
int ma = 0;
for (int i = 0; i < string.length(); i++) {
int mm = get(string, i);
ma = mm > ma ? mm : ma;
}
System.out.println(ma);
} private static int get(String string, int i) {
String s1 = string.substring(i) + string.substring(0, i);
int j1 = 0;
int j2 = 0;
char c1 = 'w';
char c2 = 'w';
for (int k = 0; k < s1.length(); k++) {
if (s1.charAt(k) != c1) {
c1 = s1.charAt(k);
break;
}
}
for (int k = s1.length() - 1; k > 0; k--) {
if (s1.charAt(k) != c2) {
c2 = s1.charAt(k);
break;
}
}
for (int j = 0; j < s1.length(); j++) {
if (s1.charAt(j) == c1 || s1.charAt(j) == 'w')
j1++;
else {
break;
}
}
for (int j = s1.length() - 1; j >0; j--) {
if (s1.charAt(j) == c2 || s1.charAt(j) == 'w')
j2++;
else {
break;
} }
if (j1 == s1.length())
return j1;
return j1 + j2;
} }

Java实现 蓝桥杯VIP 算法提高 项链的更多相关文章

  1. Java实现 蓝桥杯VIP 算法提高 能量项链

    算法提高 能量项链 时间限制:1.0s 内存限制:256.0MB 问题描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记 ...

  2. Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪

    试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...

  3. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  4. Java实现 蓝桥杯VIP 算法提高 3-3求圆面积表面积体积

    算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415 ...

  5. Java实现 蓝桥杯VIP 算法提高 5-3日历

    算法提高 5-3日历 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2007年1月1日为星期一.设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印.为 ...

  6. Java实现 蓝桥杯VIP 算法提高 11-2删除重复元素

    算法提高 11-2删除重复元素 时间限制:10.0s 内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内 ...

  7. Java实现 蓝桥杯VIP 算法提高 P0401

    算法提高 P0401 时间限制:1.0s 内存限制:256.0MB 输入一个无符号整数x,输出x的二进制表示中1的个数. 输入: 76584 输出: 7 import java.util.Scanne ...

  8. Java实现 蓝桥杯VIP 算法提高 理财计划

    算法提高 理财计划 时间限制:1.0s 内存限制:256.0MB 问题描述 银行近期推出了一款新的理财计划"重复计息储蓄".储户只需在每个月月初存入固定金额的现金,银行就会在每个月 ...

  9. Java实现 蓝桥杯VIP 算法提高 解二元一次方程组

    算法提高 解二元一次方程组 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个二元一次方程组,形如: a * x + b * y = c; d * x + e * y = f; x,y代 ...

随机推荐

  1. Mysql常用sql语句(17)- left/right join 外连接

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 外连接分为两种:left join.right ...

  2. [c++ IO加速]快速输入输出

    自己封装的FastIO类,效率虽有所损失,不过实用性提高很多. 测试,写10000000个整数(86M): printf 2.7s cout 27s FastIO 1s 测试,读10000000个整数 ...

  3. [hdoj5192] 树状数组

    枚举所有的区间.对于确定的区间,假设最终的高度为h, 代价是max(∑(Hi−h),∑(h−Hj))(Hi>h,Hj≤h) 等价于max(∑Hi−cnt(i)∗h,cnt(j)∗h−∑Hj) ( ...

  4. 一文带你了解Spring核心接口Ordered的实现及应用

    前言 最近在看框架的时候,发现了这个接口,在此进行总结,希望能够给大家帮助,同时提升自己. order接口的大体介绍 Spring框架中有这个一个接口,名字叫Ordered,联想我们在数据库中应用的O ...

  5. 关于fromdata的上传文件问题

    <div <label>上传pdf</label> <input id="fileId" type="file" accep ...

  6. JVM入门--类加载器

    一.基础架构 概览 我们平时说的栈是指的Java栈,native method stack 里面装的都是native方法 细节架构图 二.类加载器 1.类的加载 方法区并不是存放方法的区域,其是存放类 ...

  7. Postman学习之Authorization

    前言:本章将学习Postman当中的授权——Authorization 一.简介 Authorization顾名思义就是授权的意思,那是给谁授权呢?又有多少种授权的方式呢?Authorization是 ...

  8. 判断iptables是否运行的一些探索

    现在有这么一个需求,要判断iptables是否开启.咋看比较难以入手,那么可以想,怎么启动iptables,redhat下很容易联想到/etc/init.d/iptabes start . 我们可以来 ...

  9. vue父子组件之间相互传值

    1. 子组件使用父组件方法,并向父组件传值 子组件代码 <template> <div class="menu"> <div class=" ...

  10. React:Composition

    在日常的UI构建中,经常会遇到一种情况:组件本身更多是作为一个容器,它所包含的内容可能是动态的.未预先定义的.这时候它的内容取决另一个组件或外部的输入.比如弹层. props.children: Re ...