網易一道真題,問輸入一串字元,最多只能有一對不同字母相鄰,求輸入的字串有多少種排列方式。
分析:既然最多只有一對,那麼輸入的字串中只能最多有兩個不同字母。出現乙個字母的時候只有一種方式,出現兩個字母的時候有兩種方式,出現超過或等於三種的輸出為0。可以通過乙個set容器存放輸入的字母種類,然後判斷容器大小。
問題:1、set容器的使用,長度為s.size();
2、字串的輸入為:getline(cin,s),長度為:s.length();
附上c++**:
#include#include#includeusing namespace std;
int main()
python實現**:
s=list(input())
l=len(set(s))
if l>2:
print(0)
else:
print(l)
(牛客2018校招真題05)彩色的磚塊(網易)
小易有一些彩色的磚塊。每種顏色由乙個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有乙個給定的字串s,s中每個字元代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。如果兩種方式...
程式設計題 彩色的磚塊
小易有一些彩色的磚塊。每種顏色由乙個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有乙個給定的字串s,s中每個字元代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。如果兩種方式...
程式設計題07 彩色的磚塊 (網易)
小易有一些彩色的磚塊。每種顏色由乙個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有乙個給定的字串s,s中每個字元代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。如果兩種方式...