java 男女 相邻交换 队形_调整队形+上机编程调整男孩女孩顺序
上机编程调整男孩女孩顺序
1.题目:在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1)。其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示。小朋友们都很顽皮,当一个男生挨着的是女生的时候就会发生矛盾。作为幼儿园的老师,你需要让男生挨着女生或者女生挨着男生的情况最少。你只能在原队形上进行调整,每次调整只能让相邻的两个小朋友交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让上述情况最少。例如:
GGBBG -> GGBGB -> GGGBB
这样就使之前的两处男女相邻变为一处相邻,需要调整队形2次
输入描述:
输入数据包括一个长度为n且只包含G和B的字符串.n不超过50.
输出描述:
输出一个整数,表示最少需要的调整队伍的次数
思想分析:考虑一开始怎么确定是男孩往左还是往右端移动。寻找这个规则不容易,较为复杂。从最终形式出发,其实这是个很容易统计的,最终调整好后无非是BBBGGG或者GGGBBB,我们把两种情况都计算出来,较小的就是所求。
java实现代码:
package com.mytest.test0322;
import java.util.Scanner;
public class my360b {
public static void main(String[] args) {
// 输入GBGBBGGG ----BBB GGGGG 输出:交换5次
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int count = 0;
String str = in.nextLine();
for (int i = 0; i < str.length(); i++)//异常输入
if (str.charAt(i) != 'G' && str.charAt(i) != 'B') return;
int iG = 0, iB = 0;
int countBbefore = 0, countGbefore = 0;
for (int i = 0; i < str.length(); i++)
if (str.charAt(i) == 'G') {
iG++;
countGbefore = countGbefore + iB;//调整后的样式为GGGGBBB
} else if (str.charAt(i) == 'B') {
iB++;
countBbefore = countBbefore + iG;//调整后的样式为BBBBGGGG
}
if (countBbefore <= countGbefore) {
System.out.println(countBbefore);
} else {
System.out.println(countGbefore);
}
}
}
}
java 男女 相邻交换 队形_调整队形+上机编程调整男孩女孩顺序相关推荐
- 调整队形+上机编程调整男孩女孩顺序
上机编程调整男孩女孩顺序 1.题目:在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1).其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示.小朋友们都很顽皮, ...
- java中函数是什么_[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念...
本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的函数 看 ...
- JAVA给banking作界面_银行运行模拟编程 求助!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public CheckingAccount(double bal, double protect) public CheckingAccount(dou ...
- java语句电脑定时关机_月光软件站 - 编程文档 - Java - windows定时关机程序
应网友yangxjn需要写的一个windows定时关机程序 . /** * Created by IntelliJ IDEA. * autor:cofbean * Date: 2004-3-10 * ...
- Java结果集以关闭_显示结果集已关闭,正确顺序是什么
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求大神帮忙看一下下面的很多条sql语句的顺序,不知道是不是顺序的错误 package 读者具体功能实现; import java.awt.BorderLa ...
- java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单
XSL语言功能强大而奇妙.从前面的例子中,我们可以初步了解到,一个xsl文档中使用了很多类似"xsl:xxxxx"这样的标签,这些标签就是xsl语言的部分.一个xsl文档至少是由一 ...
- java海滩上有一_五十道编程小题目 --- 41 海滩上有一堆桃子,五只猴子来分 java...
[程序41] 题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一 个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的 ...
- 网易之幼儿园小朋友调整队形
import java.util.Scanner;/*** 在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1).其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G' ...
- JAVA删除pdf空白页_【Spire.PDF教程】添加或删除 PDF 页面,调整页面顺序-word删除空白页...
Spire.PDF是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight. 操作PDF文档时,我们通常会需要添加或删除一些P ...
最新文章
- 胡想——对机器人控制体系的一些想法
- h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向
- oracle 父latch:library cache,library cache latch等待事件
- 【python】随机采样的两种方法
- 人工智能相关领域的国际顶尖会议介绍
- QT获取本机IP,本地IP
- 磨刀不误砍柴工,使用visual studio之前应该先了解这些...
- python ghost.py使用笔记
- 使用PdgCntEditor软件对PDF目录进行快速编辑
- 配置交叉编译工具链和环境变量
- python相关系数显著性检验矩阵_python散点图及相关系数矩阵计算和相关性验证
- thinkpad卡在logo界面_win7系统开机卡在Thinkpad LOGO画面无法进入桌面的解决方法
- 如何使用UltraCompare对比两个文件夹内容差异
- MOS管和IGBT有什么区别?别傻傻分不清了
- 苹果cms10自适应模板好看的苹果cmsv10美化模板免费
- docker中安装mongo3.2
- Android安全检测之加固的坑
- 国产服务器tongweb的坑
- 微信分享后端接口简单实现
- Vue引入CreateJS