c++ 如何计算包含不同字符串值的数组的非重复元素

gj3fmq9x  于 2023-03-25  发布在  其他
关注(0)|答案(1)|浏览(88)
#include<bits/stdc++.h>
using namespace std;
void solve()
{
    int n,cnt;
    cin >> n;
    string s,root="";
    vector<string>x;
    for(int i=0; i<n; i++)
    {
        cin >> s;
        sort(s.begin(),s.end());
        for(int i=0; i<s.size(); i++)
        {
            if(s[i] != s[i+1])
            {
                root+=s[i];
            }
        }
        x.push_back(root);
        root="";
    }
    cnt=0;
    for(int j=1; j<x.size(); j++)
    {
        if(x[j]!=(x[j-1]))
        {
           cnt++;
        }

        //cout << x[j] <<" ";
    }
     cout << cnt+1;
    
   
}
int main()
{
    solve();
}

`这里我想比较字符串是否相同。我想打印出有多少个不同的字符串
我试图将字符串存储在www.example.com的数组中strings.help以解决这个问题。

ttcibm8c

ttcibm8c1#

这是可以接受的

#include<bits/stdc++.h>
using namespace std;
void solve()
{
    int n;
    cin >> n;
    set<set<char>> root;
    string s,root="";
    for(int i=0; i<n; i++)
    {
        set<char> tmp;
        cin >> s;
        for(auto c:s) tmp.insert(c);
        root.insert(tmp);
    }
    cout << root.size();
}
int main()
{
    solve();
}

使用set将字符串的唯一字母存储为根,然后使用另一个set存储不同的根

相关问题