华为oj: 提取不重复的整数
来源:互联网 发布:ca认证 知乎 编辑:程序博客网 时间:2024/04/28 00:23
输入一个int型整数
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
如果返的整数以0开头,去掉0;
如 intput:1010 output:1
#include<iostream>using namespace std;bool seek(int arr[],int len,int num){for(int i=0;i<len;i++){if (num==arr[i]) return false;}return true;}int numReverse(int num){ int temp[10];int count=0;int result=0;int i,tempnum;while(num!=0){ tempnum=num%10; if(tempnum!=0&&seek(temp,count,tempnum)) {temp[count]=tempnum;count++;}num/=10; }for(i=0;i<count;i++)result=result*10+temp[i];return result;}int main(){int N;cin>>N; int res= numReverse(N);cout<<res;}
【优化】由于每一位的数只有0,1,,,9,所以建一个大小为10的数组,索引为每个位上面的值,这样可以减少查找的复杂度
#include<iostream>using namespace std;int numReverse(int num){ int temp[10];int temp2[10]={0};int count=0;int result=0;int i,tempnum;while(num!=0){ tempnum=num%10; temp2[tempnum]++; if(tempnum!=0&&temp2)[tempnum]<2) {temp[count]=tempnum;count++;}num/=10; }for(i=0;i<count;i++)result=result*10+temp[i];return result;}int main(){int N;cin>>N; int res= numReverse(N);cout<<res;}
0 0
- 【华为oj】提取不重复的整数
- 【华为oj】提取不重复的整数
- 华为oj: 提取不重复的整数
- 【华为 OJ】 提取不重复的整数
- 华为OJ:提取不重复的整数
- 华为OJ在线测试题--提取不重复的整数
- 华为OJ(提取不重复的整数)
- 【华为OJ】【009-提取不重复的整数】
- 华为OJ——提取不重复的整数
- 华为OJ 初级:提取不重复的整数
- 华为OJ——提取不重复的整数
- 华为oj之提取不重复的整数
- 【华为OJ9】提取不重复的整数
- 华为 提取不重复的整数
- 华为oj 取近似值&&合并表记录&&提取不重复的整数
- OJ-----提取不重复整数
- 华为初级——提取不重复的整数
- 华为机试题--7.提取不重复的整数
- 解决spring mvc中乱码的问题。
- 打包volley
- ssh+mysql 登陆 及增删改成
- mousemove事件,鼠标移动过快时,无法全部响应
- navigationbar右侧加两个自定义按钮
- 华为oj: 提取不重复的整数
- python实现杨辉三角(使用生成器generator)
- linux常用命令(14):head命令
- Java ArrayList遍历方法
- 【实验】高斯混合模型+vs2012+opencv2.4.4
- 存储过程Append 二进制 _ParameterPtr“不正常地定义参数对象。提供了不一致或不完整的信息”
- 高效的求大数的幂和取余
- 黑马程序员——Foundation框架入门:NSNumber,NSValue和NSDate
- a declaration cannot be both 'final' and 'dynamic'