华为机试-提取不重复的整数

来源:互联网 发布:创意个人域名 编辑:程序博客网 时间:2024/05/16 15:21

题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

示例1
输入

9876673

输出

37689

怎么确定“不重复”
开始想利用map唯一性,但map内部是有序存储。
因为不超过10位,可以利用长度为10的数组来记录相应的数字是否已经存在。

#include<iostream>using namespace std;int main()  {  int n;int a[10]={0};while(cin>>n){    while(n)    {        if(a[n%10]==0)        {            cout<<n%10;            a[n%10]++;        }        n/=10;    }}         return 0;

}

相似的题:

字符个数的统计:

编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。

int main() {     string str;    int a[128]={0};    int count=0;    while(cin>>str)    {        for(int i=0;i<str.size();i++)        {            int t=(int)str[i];            if(t>=0 &&t<=127)            {                if(a[t]==0)                {                    a[t]++;                    count++;                }            }        }        cout<<count<<endl;    }   return 0;}
原创粉丝点击