对奇数和偶数分段,然后一样的直接跳过。主要是理解题意比较重要。
class Solution {
public:
string gainEven(string s){
string result = "";
for (int ii=0;ii<s.size();ii=ii+2){
result += s[ii];
}
sort(result.begin(),result.end());
return result;
}
string gainOdd(string s){
string result = "";
for (int ii=1;ii<s.size();ii=ii+2){
result += s[ii];
}
sort(result.begin(),result.end());
return result;
}
int numSpecialEquivGroups(vector<string>& A) {
// gain and sort the even/odd parts
vector<string> odd;
vector<string> even;
for (int ii=0;ii<A.size();ii++){
odd.push_back(gainOdd(A[ii]));
even.push_back(gainEven(A[ii]));
}
// judge and remove the same parts
int result = 0;
for (int ii=0;ii<A.size();ii++){
int flag = 1;
for (int jj=0;jj<ii;jj++){
if ((odd[ii]==odd[jj])&&(even[ii]==even[jj])){
flag = 0;
break;
}
}
if (flag == 1){result++;}
}
return result;
}
};