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

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

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


相关文章
|
7月前
|
测试技术
【错题集-编程题】添加字符(字符串)
【错题集-编程题】添加字符(字符串)
|
算法 C语言
【基础算法】浅浅刷个小题 # 移动零 # 丢失的数字 # 转换成小写字母 # 和为零的N个不同整数 # 猜数字 #
【基础算法】浅浅刷个小题 # 移动零 # 丢失的数字 # 转换成小写字母 # 和为零的N个不同整数 # 猜数字 #
|
存储 C语言
《C和指针》读书笔记(第九章 字符串、字符和字节)(上)
《C和指针》读书笔记(第九章 字符串、字符和字节)(上)
|
程序员 C语言
《C和指针》读书笔记(第九章 字符串、字符和字节)(中)
《C和指针》读书笔记(第九章 字符串、字符和字节)(中)
《C和指针》读书笔记(第九章 字符串、字符和字节)(下)
《C和指针》读书笔记(第九章 字符串、字符和字节)(下)
|
存储
[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
980 0
[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
|
C++
【力扣·每日一题】709. 转换成小写字母(C++ 模拟)
【力扣·每日一题】709. 转换成小写字母(C++ 模拟)
44 0
【力扣·每日一题】709. 转换成小写字母(C++ 模拟)
亲身经历:如何判断一个字符在a/z之前?
亲身经历:如何判断一个字符在a/z之前?
69 0
【编程】89%的人不知道的字符拼接成字符串的注意点
【编程】89%的人不知道的字符拼接成字符串的注意点
87 0
|
算法 测试技术 索引
LeetCode 709. 转换成小写字母 | 算法-从菜鸟开始
在LeetCode中有一道这样的题目,将字符串中的大写字母转换成相同的小写字母,要求稍微简单了一些,今天我们把他升级一下,要求改成将大写字母转为对应的小写字母,将小写字母转为对应的大写字母。 看看完整的题目描述
176 0