彩色的磚塊

2021-08-17 17:41:21 字數 744 閱讀 1720

小易有一些彩色的磚塊。每種顏色由乙個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有乙個給定的字串s,s中每個字元代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。(如果兩種方式所對應的磚塊顏色序列是相同的,那麼認為這兩種方式是一樣的。)

例如: s = "abab",那麼小易有六種排列的結果:

"aabb","abab","abba","baab","baba","bbaa"

其中只有"aabb"和"bbaa"滿足最多只有一對不同顏色的相鄰磚塊。 

輸入描述:

輸入包括乙個字串s,字串s的長度length(1 ≤ length ≤ 50),s中的每乙個字元都為乙個大寫字母(a到z)。

輸出描述:

輸出乙個整數,表示小易可以有多少種方式。

輸入例子1:

abab

輸出例子1:

2

#include

#include

using namespace std;

#include

int main()}}

sum=0;

for(i=0;i

if(sum>1)

}if(sum==1)

else if(sum==0)

else

}

程式設計題 彩色的磚塊

小易有一些彩色的磚塊。每種顏色由乙個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有乙個給定的字串s,s中每個字元代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。如果兩種方式...

程式設計題07 彩色的磚塊 (網易)

小易有一些彩色的磚塊。每種顏色由乙個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有乙個給定的字串s,s中每個字元代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。如果兩種方式...

牛客真題(1)彩色的磚塊

網易一道真題,問輸入一串字元,最多只能有一對不同字母相鄰,求輸入的字串有多少種排列方式。分析 既然最多只有一對,那麼輸入的字串中只能最多有兩個不同字母。出現乙個字母的時候只有一種方式,出現兩個字母的時候有兩種方式,出現超過或等於三種的輸出為0。可以通過乙個set容器存放輸入的字母種類,然後判斷容器大...