题解

难度:简单

知识点:逻辑与理解

这道题认真读完题目则发现很简单,因为漂亮的砖块最多存在一对不同颜色的相邻砖块。
所以只有三种情况:

  • 如果有两种颜色以上,那么不可能组成漂亮砖块
  • 只有两种颜色例如AB,那么排列有AB和BA,所以两种排列方式
  • 只有一种颜色,那么只有一种排列方式

颜色对应不同的字母,为了对于找出字母的种类,就立即想到set元素不能重复的特点,所以根据set的size就得到字母的种类数

#include <iostream>
#include <string>
#include <set>

using namespace std;

int main()
{
    string s;
    getline(cin, s);
    set<char> good;
    for (int i = 0; i < s.length(); i++)
        good.insert(s[i]);
    if (good.size() == 1)
        cout << 1 << endl;
    else if (good.size() == 2)
        cout << 2 << endl;
    else
        cout << 0 << endl;
}