找不同的数字
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int t; cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++)cin >> a[i];
sort(a.begin(), a.end());
int k = n;
for (int i = 1; i < n; i++) {
if (a[i] == a[i - 1])k--;
}
cout << k << endl;
}
return 0;
}
假设前面有一个0
#include<iostream>
#include<cstring>
using namespace std;
int main() {
int t;cin >> t;
while (t--) {
int n; cin >> n;
string s; cin >> s;
s = "0" + s;//把0拼接到s的最前面
int k = n;
int cur = s[0];
for (int i = 1; i <= n; i++) {
int dig = s[i];
if (cur != dig)k++;
cur = dig;
}
if (k-n >= 3)cout << k - 2 << endl;
else if (k-n == 2)cout << k - 1 << endl;
else cout << k << endl;
}
return 0;
}