删除重复字符

描述:

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。

输入格式:

输入是一个以回车结束的非空字符串(少于80个字符)。

输出格式:

输出去重排序后的结果字符串。

输入样例:

ad2f3adjfeainzzzv

输出样例:

23adefijnvz

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    set<char> s;
    string str;
    getline(cin,str);
    for(int i=0;i<str.length();i++){
        s.insert(str[i]);
    }
    for(auto it = s.begin();it!=s.end();it++){
        cout<<*it; 
    }
    return 0;
} 

解析:

  1. set<数据类型>:是集合容器,就是数学的那个集合,不可有重复值,且会自动排序
  2. auto:自动生成对应的迭代器

利用set容器接收,根据set容器的性质,自动排序并去重,最后迭代器遍历直接输出。

点赞

描述:

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。

输入格式:

输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1⋯FK*”,其中1≤*K*≤10,*Fii=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输出格式:

输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1⋯FK*”,其中1≤*K*≤10,*Fii=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输入样例:

4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123

输出样例:

233 3

代码:

#include<stdio.h>
int main()
{
    int n,m,t;
    int a[1001] = {0};
    int i,j,max=0,num=0;

    scanf("%d",&n);         //N行 
    for(i=0; i<n; i++){
        scanf("%d",&m);     //一行几个数据 
        for(j=0; j<m; j++){
            scanf("%d",&t);
            a[t]++;
            if(a[t]>=num){      //记录最多数据的数量 
                num = a[t];
            }
        }
    }
    for(i=0; i<1001; i++){
        if(a[i]==num&&i>max)    //查找编号最大的那个 
            max = i;
    }
    printf("%d %d",max,num);
    return 0;
}

解析:

每次输入将编号记作下标,并对应数组的数值+1,记录最多数据的数量,最后循环找到数据最多并且,编号最大的元素,并输出。


一只小菜鸡