using namespace std;
int GetMinNum(const string& str, int &oFiledMin)
{
int a_count[10] = { 0 };
for (auto& c : str)
{
int value = (int)c-48;
++a_count[value];
}
int least = 0;
for (int i = 0; i < 10; ++i)
{
if (a_count[i] < a_count[least])
{
least = i;
}
}
if (least == 0)
{
for (int i = 1; i < 10;++i)
{
if (a_count[i]==a_count[0])
{
least = i;
break;
}
}
}
if (least==0)
{
oFiledMin = pow(10, a_count[least] + 1);
}
else
{
oFiledMin = least;
for (int i = 0; i < a_count[least] ; ++i)
{
oFiledMin = oFiledMin * 10 + least;
}
}
return 0;
}
int main()
{
string str("65412319956875210033");
int failed = 0;
GetMinNum(str, failed);
cout << failed << endl;
system("pause");
return 0;
}
思路是统计出现次数最少的数字,0单独处理,然后记住0的ASSIC码是48。