A. Aramic script
codeforces题目链接Problem-975A
题意:
输入n个字符串,对每个字符串去重后,就是一个根对象,输出有多少根对象。比如样例一,a,aa,aaa,ab,abb,去重后的是字符串是a,a,a,ab,ab。所以只有a,ab两个对象。还有就是题目给的字符串是可以重新排列的,排序后去重再算,比如样例二:按照字典序排序后都是aemr,所以只有一个。
#include <iostream>
#include <algorithm>
using namespace std;string a[1010];
string b[1010];int main()
{int n;cin >> n;for(int i=0; i<n; i++) {cin >> a[i];int len = a[i].size();sort(a[i].begin(), a[i].end());int t = 0;b[i] += a[i][t];for(int j=1; j<len; j++) {if(a[i][j] != a[i][j-1]) {b[i] += a[i][j];}}cout << b[i] << endl;}sort(b, b+n);int ans = 1;for(int i=1; i<n; i++) {//cout << b[i] << endl;if(b[i] != b[i-1])ans ++;}cout << ans << endl;return 0;
}
单个字符串排序:
string a
对 a 进行排序:sort( a.begin(), a.end() )
字符串数组排序:
string a[n];
对 a[n] 进行排序: sort( a, a+n )
可直接使用 sort,无需重写cmp方法,因为 string 类对 ‘>’ ,‘==’, ‘<’ 这些比较运算符进行了重载