网易之幼儿园小朋友调整队形
生活随笔
收集整理的這篇文章主要介紹了
网易之幼儿园小朋友调整队形
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import java.util.Scanner;/*** 在幼兒園有n個小朋友排列為一個隊伍,從左到右一個挨著一個編號為(0~n-1)。其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示。* 小朋友們都很頑皮,當一個男生挨著的是女生的時候就會發生矛盾。作為幼兒園的老師,你需要讓男生挨著女生或者女生挨著男生的情況最少。你只能在原隊形上進行調整,* 每次調整只能讓相鄰的兩個小朋友交換位置,現在需要盡快完成隊伍調整,你需要計算出最少需要調整多少次可以讓上述情況最少.例如: GGBBG -> GGBGB* -> GGGBB 這樣就使之前的兩處男女相鄰變為一處相鄰,需要調整隊形2次* * @author pomay**/
public class Wangyi_movesite
{public int movesite(String str){char[] Bchild = str.toCharArray();char[] Gchild = str.toCharArray();int Bcount = 0;int Gcount = 0;char temp = ' ';// B在前// 趟數for (int i = 0; i < Bchild.length; i++){// 比較次數for (int j = 0; j < Bchild.length - 1 - i; j++){if (Bchild[j] == 'G' && Bchild[j + 1] == 'B'){temp = Bchild[j];Bchild[j] = Bchild[j + 1];Bchild[j + 1] = temp;Bcount++;}}}// G在前for (int i = 0; i < Gchild.length; i++){// 比較次數for (int j = 0; j < Gchild.length - 1 - i; j++){if (Gchild[j] == 'B' && Gchild[j + 1] == 'G'){temp = Gchild[j];Gchild[j] = Gchild[j + 1];Gchild[j + 1] = temp;Gcount++;}}}// System.out.println("Bcount" + Bcount);// System.out.println("Gcount" + Gcount);return Bcount <= Gcount ? Bcount : Gcount;}public static void main(String[] args){// 輸入數據包括一個長度為n且只包含G和B的字符串.n不超過50.Scanner s = new Scanner(System.in);String str = s.next();Wangyi_movesite move = new Wangyi_movesite();// 輸出一個整數,表示最少需要的調整隊伍的次數System.out.println(move.movesite(str));}
}
總結
以上是生活随笔為你收集整理的网易之幼儿园小朋友调整队形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 电话表情,歪,小人打电话
- 下一篇: 九度OJ 1034