斗鱼2021客户端编程题
第一行输入N,表示输入几个字符串
第二行开始输入字符串
输出字符串包含几个种类
如果两个字符串中的字母任意交换顺序后一模一样则为同一类,比如abc和cab是一类
//字符串分类 #include <iostream> #include <string> #include <set> #include <vector> using namespace std; //排序 //void QSort(string str, int i, int j) //{ // int low = i; // int high = j; // while (low < high) // { // while (str[low] <= str[i] && low < j) // { // low++; // } // while (str[high] >= str[i] && high > i) // { // high--; // } // if (low < high) // { // swap(str[low], str[high]); // } // else // { // break; // } // } // swap(str[i], str[high]); // QSort(str, i, high - 1); // QSort(str, high + 1, j); //} void BSort(string &str, int len) { for (int i = 0; i < len; i++) { for (int j = 0; j < len; j++) { if (str[i] < str[j]) { char temp = str[i]; str[i] = str[j]; str[j] = temp; } } } } int main() { int N; vector<string> vbuf; while (cin >> N) { for (int i = 0; i < N + 1; i++) { string str; getline(cin, str); vbuf.push_back(str); } for (int i = 0; i < N + 1; i++) { int len = vbuf[i].size(); //QSort(vbuf[i], 0, len); BSort(vbuf[i], len); //cout << vbuf[i]; } set<string> sbuf; for (int i = 0; i < N + 1; i++) { sbuf.insert(vbuf[i]); } cout << sbuf.size() - 1 << endl; } return 0; }