2018網易校招編程題(1)彩色的磚塊

小易有一些彩色的磚塊。每種顏色由一個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有一個給定的字符串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

解題思路:

這題看起來好像挺麻煩,需要遍歷所以值,其實只要列舉幾個例子就發現,此字符串中字符種類最多爲2種有不同值,2種以上就都輸出爲0,因此得三種情況。

1)字符串中所有字符都爲一種字符,則會輸出1;例如:AAAAAA

2)字符串包含兩種字符,則輸出2;例如:AABB,BBAA

3)字符串包含兩種以上字符,則輸出0;例如:AABBCC

代碼:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章