【斗鱼笔试题】字符串分类---字符集相同的字符串为同一类

简介: 【斗鱼笔试题】字符串分类---字符集相同的字符串为同一类

斗鱼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;
}


目录
打赏
0
0
0
0
14
分享
相关文章
C语言程序设计核心详解 第一章:数制及转换与ASCII码
本专栏旨在夯实C语言基础,涵盖基础知识与进阶内容,助力解决自命题考试和考研问题,为数据结构与算法设计奠定坚实基础。内容包括数制及其转换、ASCII码、内存管理、机器码等,重点讲解二进制、八进制、十六进制的概念与转换方法,并介绍C语言的结构、数据类型和标识符规范。
《C和指针》读书笔记(第九章 字符串、字符和字节)(下)
《C和指针》读书笔记(第九章 字符串、字符和字节)(下)
【牛客】字符集合
【牛客】字符集合
124 0
【牛客】字符集合
算法题每日一练---第50天:判断字符是否唯一
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
146 2
算法题每日一练---第50天:判断字符是否唯一
【编程】89%的人不知道的字符拼接成字符串的注意点
【编程】89%的人不知道的字符拼接成字符串的注意点
104 0
数据结构与算法题目集(中文) - 7-20 表达式转换(25 分)
数据结构与算法题目集(中文) - 7-20 表达式转换(25 分)
173 0
数据结构与算法题目集(中文) - 7-20 表达式转换(25 分)