/*
牛牛有n張卡片排成一個序列.每張卡片一面是黑色的,另一面是白色的。初始狀態(tài)的時候有些卡片是黑色朝上,有些卡片是白色朝上壳影。牛牛現(xiàn)在想要把一些卡片翻過來,得到一種交替排列的形式,即每對相鄰卡片的顏色都是不一樣的。牛牛想知道最少需要翻轉(zhuǎn)多少張卡片可以變成交替排列的形式。
輸入描述:
輸入包括一個字符串S,字符串長度length(3 ≤ length ≤ 50),其中只包含'W'和'B'兩種字符串,分別表示白色和黑色陶夜。整個字符串表示卡片序列的初始狀態(tài)。
輸出描述:
輸出一個整數(shù),表示牛牛最多需要翻轉(zhuǎn)的次數(shù)。
輸入例子1:
BBBW
輸出例子1:
1
*/
#include<stdio.h>
int main(){
char a[50];
int count = 0;
scanf("%s",a);
if(sizeof(a)/2<3 || sizeof(a)/2>50){
printf("ERROR");
return 0;
}
int i = 0;
int wCount1 = 0;
int wCount2 = 0;
while (a[i] != '\0'){
if (i % 2 == 0) {
if (a[i] == 'W') {
wCount1++;
}
} else {
if (a[i] == 'W') {
wCount2++;
}
}
i++;
}
int wFlag = (wCount1 > wCount2 ? wCount1 : wCount2) > ((i - wCount1) > (i - wCount2) ? (i - wCount1) : (i - wCount2)) ? 1 : 0;
int flag = 1;
if (wFlag) {
flag = wCount1 > wCount2 ? 1 : 0;
} else {
flag = (i - wCount1) > (i - wCount2) ? 1 : 0;
}
int j = 0;
while (a[j] != '\0') {
if (flag) {
if (wFlag) {
if (j % 2 == 0 && a[j] == 'B') {
count++;
} else if (j % 2 != 0 && a[j] == 'W') {
count++;
}
} else {
if (j % 2 == 0 && a[j] == 'W') {
count++;
} else if (j % 2 != 0 && a[j] == 'B') {
count++;
}
}
} else {
if (wFlag) {
if (j % 2 != 0 && a[j] == 'B') {
count++;
} else if (j % 2 == 0 && a[j] == 'W') {
count++;
}
} else {
if (j % 2 != 0 && a[j] == 'W') {
count++;
} else if (j % 2 == 0 && a[j] == 'B') {
count++;
}
}
}
j++;
}
printf("%d",count);
return 0;
}
算法(一)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門烤黍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人傻盟,你說我怎么就攤上這事速蕊。” “怎么了娘赴?”我有些...
- 文/不壞的土叔 我叫張陵规哲,是天一觀的道長。 經(jīng)常有香客問我筝闹,道長媳叨,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任关顷,我火速辦了婚禮糊秆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘议双。我一直安慰自己痘番,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布平痰。 她就那樣靜靜地躺著汞舱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宗雇。 梳的紋絲不亂的頭發(fā)上昂芜,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼损趋!你這毒婦竟也來了患久?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站儡陨,受9級特大地震影響褪子,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜骗村,卻給世界環(huán)境...
- 文/蒙蒙 一嫌褪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胚股,春花似錦笼痛、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至进宝,卻和暖如春刻坊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背党晋。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 冒泡排序是八大排序算法之一铜犬。其排序原理是每次都對相鄰的兩個數(shù)進行比較,如果前面一個數(shù)大于后面一個數(shù)轻庆,那就交換兩個數(shù)...
- 快速排序是當(dāng)遇到較大數(shù)據(jù)時,排序快,高效的方法(公司面試時,基本上會被問到...) 該方法的基本思想是: 1.先從...
- 上篇有個問題說道癣猾,當(dāng)我們的待排序的數(shù)據(jù)數(shù)據(jù)量較大并且是線性結(jié)構(gòu)時用快速排序進行排序操作。但是當(dāng)我們要排序的數(shù)據(jù)是鏈...
- MD5加密MD5以512位分組來處理輸入的信息余爆,且每一分組又被劃分為16個32位子分組纷宇,經(jīng)過了一系列的處理后,算法...
- 選擇排序是八大排序算法之一蛾方,其排序原理是: 比如在一個長度為N的無序數(shù)組中像捶,在第一趟遍歷N個數(shù)據(jù),找出其中最小的數(shù)...