zoukankan      html  css  js  c++  java
  • 洛谷P1808 单词分类

    题目描述

    Oliver为了学好英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类。

    两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。

    例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。

    现在Oliver有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100。你要告诉Oliver这些单词会被分成几类。

    输入输出格式

    输入格式:

    输入文件的第一行为单词个数N,以下N行每行为一个单词。

    输出格式:

    输出文件仅包含一个数,表示这N个单词分成的类数

    输入输出样例

    输入样例#1:
    3 
    AABAC 
    CBAAA 
    AAABB
    输出样例#1:
    2

    说明

    对于70%的数据满足N≤100。 对于100%的数据满足N≤10000。

    对每个读入的字符串中的字符按照字母字典序排序(例如AABAC排序后为AAABC)。

    ↑sort连这个也支持简直良心

    然后hash判重或者set判重。

     1 /*by SilverN*/
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #include<set>
     8 using namespace std;
     9 char s[300];
    10 int n;
    11 set<string>st;
    12 int main(){
    13     scanf("%d",&n);
    14     int i,j;
    15     for(i=1;i<=n;i++){
    16         scanf("%s",s);
    17         int len=strlen(s);
    18         sort(s,s+len);
    19         st.insert(s);
    20     }
    21     printf("%d
    ",st.size());
    22     return 0;
    23 }
  • 相关阅读:
    加密文件夹 | 彻底隐藏文件夹
    Swing的概述
    Java SE练习题——求奇数
    多线程有什么用?
    Robot的使用
    基础的Servlet
    Angular Resolver 学习
    GoLang 学习
    Angular Material 控件学习
    Angular 学习小记
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6078449.html
Copyright © 2011-2022 走看看