题解 | #提取不重复的整数# (C++ | 查重表解法)
提取不重复的整数
http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
时间:3ms 100%
空间:456kb 16.24%
#include<bits/stdc++.h>
using namespace std;
int main()
{
bool arr[10]={false}; //查重表
//输入中的数字0~9映射到下标,对应数字出现过则赋值true
string num;
cin>>num;
for(int i=num.length()-1;i>=0;i--) //从最末位开始输出,因此逆向遍历
{
int digit=num[i]-48; //ascii码转换为int值(48为'0'的ascii码
if(arr[digit]) //若对应值为true,数字出现过
continue;
arr[digit]=true; //若未出现过,这是第一次出现,赋值true
cout<<num[i]; //并且输出
}
}