zoukankan      html  css  js  c++  java
  • 字符串分类--全国模拟(二)

    [编程题] 字符串分类
    时间限制:1秒
    空间限制:32768K
    牛牛有N个字符串,他想将这些字符串分类,他认为两个字符串A和B属于同一类需要满足以下条件:
    A中交换任意位置的两个字符,最终可以得到B,交换的次数不限。比如:abc与bca就是同一类字符串。
    现在牛牛想知道这N个字符串可以分成几类。 
    输入描述:
    首先输入一个正整数N(1 <= N <= 50),接下来输入N个字符串,每个字符串长度不超过50。
     
     
    输出描述:
    输出一个整数表示分类的个数。
     
    输入例子:
    4 abcd abdc dabc bacd
     
    输出例子:
    1
     
    解题思路:使用vector存储每个字符串,针对每个字符串进行排序操作(排序操作保证的是一类字符串一样),然后将排好序的字符串插入到set中,可以保证只属于一类的字符串只插入一次,set的大小就是字符串的类数。
     1 #include <iostream>
     2 #include <string.h>
     3 #include <vector>
     4 #include <set>
     5 #include <algorithm>
     6 using namespace std;
     7 int main()
     8 {
     9     int n;
    10     while(cin>>n)
    11     {
    12         vector<string> vv(n);//必须是确定的n才可以对vv采用cin>>vv[i]的方式输入
    13         set<string> s1;
    14         for(int i=0;i<n;i++)
    15         {
    16             cin>>vv[i];
    17         }
    18         for(int i=0;i<n;i++)
    19         {
    20             sort(vv[i].begin(),vv[i].end());
    21         }
    22         for(int i=0;i<n;i++)
    23         {
    24             s1.insert(vv[i]);
    25         }
    26         cout<<s1.size()<<endl;
    27     }
    28     return 0;
    29 }
  • 相关阅读:
    <hdu2072>单词数(set容器,string类应用)
    志愿者选拔
    Game of Life
    <LightOJ 1338> Hidden Secret!
    Miss Kitty and Her Little Ice Cream Shop(水题)
    约瑟夫问题
    <FZU 1019>猫捉老鼠
    <cf>System of Equations(水题)
    Palindromic Numbers (III)(回文数,较麻烦)
    <cf>Solitaire(DFS or DP)
  • 原文地址:https://www.cnblogs.com/qqky/p/7001740.html
Copyright © 2011-2022 走看看