题目描述:
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
知识点: 数组
输入:一个int型整数
输出:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
如果返的整数以0开头,去掉0。如 intput:1010 output:1
样例输入: 9876673
样例输出: 37689
思路:
该题不难,但容易出错。
易错点在于特殊情况的处理,如输入0,输出0;输入0000,输出0;
并且以0开头的整数,虽然去掉,但还是记为0是出现过的。
代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
int len = str.size(), freq[10] = { 0 }, i=len-1;
while (str[i] == '0')
{
if (i == 0)
{
cout << 0;
i--;
break;
}
i--;
freq[0] = 1;
}
for (; i >= 0; i--)
{
if (freq[str[i] - '0'] == 0)
{
freq[str[i] - '0'] = 1;
cout << str[i];
}
}
cout << endl;
return 0;
}
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
98(100) | 16ms | 2036KB | 7 | 4 |