一、整型数组去重与排序:

【题目描述】

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

【输入】

有2行。第1行为1个正整数N ,表示所生成的随机数的个数。第2行有N个用空格隔开的正整数,为所产生的随机数。

【输出】

共2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

例如:

输入 结果
10
20 40 32 67 40 20 89 300 400 15
8
15 20 32 40 67 89 300 400

这个题可以采用先去重再排序的思路,代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
#include<cmath>
#include<iomanip>
#include<cstdlib>
#include<ctime>
#include<algorithm>
#include<stdio.h>
#include<cstdio>
#include<cstring>
#include<map>
#define M 100
using namespace std;
long long  a[M + 5],/*f[M+5]*/b[M+5];
//char a[1000001], b[1000001], c[1000001];
int main()
{int n,i,j,cnt=0;cin >> n;for (i = 1; i <= n; i++){cin>> a[i];}b[++cnt] = a[1];for (i = 2; i <= n; i++){for (j = 1; j <= cnt; j++){if (a[i] == b[j]){break;}}if (j > cnt){b[++cnt] = a[i];}}sort(b + 1, b + cnt + 1);cout << cnt << endl;for (i = 1; i <cnt; i++){cout << b[i] << " ";}cout << b[i] << endl;return 0;
}

或者也可以用集合法:

#include <bits/stdc++.h>
#define M 100
using namespace std;
int a[M+5]={1},b[M+5]={0},c[M+5]={0};
int main()
{int n,i,x;set<int>s;cin>>n;for(i=1;i<=n;i++){cin>>x;s.insert(x);//向集合s中插入x;}cout<<s.size()<<endl;
for(auto e:s)
{cout<<e<<" ";
}
cout<<endl;return 0;
}

二、字符串去重(按原来顺序):

【题目描述】

输入一个长度不超过 100 的字符串,删除串中的重复字符。例如:输入的字符串为abacaeedabcdcd,

删除重复字符串后为abced。

【输入格式】

一个长度不超过100个字符。

【输出格式】

删除重复字符后的字符串,保留原来的顺序。

例如:

输入 结果
abacaeedabcd
abced

若去重加排序,则直接集合法:

#include <bitsdc++.h>
#define M 100
using namespace std;
int a[M+5]={1},b[M+5]={0},c[M+5]={0};
int main()
{char s[M+5];cin>>s;int len =strlen(s);int i;set<char>z;for(i=0;i<len;i++){z.insert(s[i]);}for(auto e:z){cout<<e;}return 0;
}

C++数组去重与排序相关推荐

  1. java随机数去重排序_数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数...

    数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i for(var j=i+1;j if(arr[i] == arr[j]){ arr.s ...

  2. java 数组去重排序_Java实现的数组去重与排序操作详解

    本文实例讲述了Java实现的数组去重与排序操作.分享给大家供大家参考,具体如下: 这里演示Java实现数组去重.排序操作 文中的示例源码编写基于Jdk1.6+.junit4.8.2 java.util ...

  3. 前端面试题-数组去重和排序

    首先,不好意思,我昨天偷懒了,没有更新面试题,今日补上昨日的锅. 基于上次的对象转化题目,不少同学指出对象种的数组如果长度不一样,不能满足功能,所以针对这个进行优化,代码如下所示: <scrip ...

  4. 数组-去重、排序方法、json排序

    1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=functi ...

  5. JS篇之数组去重、排序、求最值的几种方法封装

    一.数组去重(仅列五种常见) 1. es6的 set function unique(arr){return [...new Set(arr)] } 2. 数组的indexOf function un ...

  6. 【Python3】数组去重和排序

    给定一个乱序的数组,数组大小不超过100.删除所有重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序. 输入: 1,3,3,3,2,4,4 ...

  7. 计算找到出现最多的数字和次数 ,实现数组去重 ,进行排序。

    实现 1.计算找到出现最多的数字和次数 2. 实现数组去重 3. 进行排序 <!DOCTYPE html> <html lang="en"><head ...

  8. Bailian4085 数组去重排序【桶排序】

    4085:数组去重排序 总时间限制: 1000ms 内存限制: 1000kB 描述 小吉是银行的会计师,在处理银行帐目的时候,遇到了一些问题.有一系列整数,其中含有重复的整数,需要去掉重复后,排序输出 ...

  9. 数组的合并,去重,排序

    一,两个数组的合并去重: var arr1 = ['a','b']; var arr2 = ['a','c','d']; var arr3 = [1,'d',undefined,true,null]; ...

最新文章

  1. JVM自动内存管理:对象判定和回收算法
  2. Spring5源码 - 12 Spring事件监听机制_异步事件监听应用及源码解析
  3. 134. 加油站 golang
  4. 笨方法“学习python笔记之字符串
  5. IDEA 每次启动javaWEB项目,都会自动打开浏览器标签页,如何关闭这么烦人的操作?
  6. Spring依赖注入static静态变量相关问题
  7. java mapxtreme_mapxtreme java 初始化地图
  8. Excel VBA 设计调查问卷
  9. win10电脑时间同步设置方法
  10. 使用树莓派3B+ 制作一个属于自己的无线AP 无线路由器 一个Wi-Fi热点
  11. 工业镜头倍率及视场范围、焦距的计算方法
  12. Excel快速核对两张表格
  13. 手机/微信/浏览器的字体设置太大,rem 计算不准确
  14. 电子不停车收费系统(ETC)专题(5)——最新动态
  15. 【kaggle】特征工程 trick
  16. AD20画PCB的学习之路(一)
  17. 遥感学报(湖泊遥感专刊)投稿历程
  18. java中PreparedStatement和Statement详细讲解
  19. 电气设计参考图纸,有高低压电气设计图纸、自控设计图纸和污水处理工程电气自控图
  20. [kuangbin带你飞]专题一 做题顺序与题解 【简单搜索】

热门文章

  1. WEB综合案例 黑马面面 day04 用户与角色绑定功能 登录用户菜单控制和权限效验
  2. 多线程处理十万百万级List(大list处理)
  3. iis 设置网站前台后台 http和https分离访问
  4. 影像组学ibex_影像组学的基本概念与临床应用
  5. 计算机 医学 sci,医学、计算机与图像处理,免版面费的“研究生之友”SCI论文期刊...
  6. [博客杂志]2007年中国最红的十大美女明星
  7. ImageJ工具的使用
  8. 傅里叶变换及低通滤波再反变换(C++opencv)
  9. 打不开eclipse 由于它来自身份不明的开发者
  10. mysql查询发生变化的股价_最近半年股价涨跌统计