给定一个k位整数N = dk-1*10k-1 + … + d1*101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。
#include<iostream>
#include<vector>
#include<string>
#include<set>
using namespace std;
int main() {
string s1, s2;
cin >> s1 >> s2;
int size1 = s1.size(),size2 = s2.size();
set<char> print;
vector<char> mark;
int j = 0,d='a'-'A';
for (int i = 0;i < size2;++i) {
while(j < size1)
if (s1[j] != s2[i]) {
if (s1[j] <= 'z'&&s1[j] >= 'a')
s1[j] -= d;
auto iter=print.insert(s1[j]);
if (iter.second)
mark.push_back(s1[j]);
++j;
}
else {
++j;break;
}
}
for (;j < size1;++j) {
if (s1[j] <= 'z'&&s1[j] >= 'a')
s1[j] -= d;
auto iter = print.insert(s1[j]);
if (iter.second)
mark.push_back(s1[j]);
}
for (auto &r : mark)
cout << r;
return 0;
}
- 直接使用set和unorder_set都无法按照插入顺序排列