C++, делаю программу для проверки "Анаграммны ли две строки для друг друга". Нужно выводить Yes если являются анаграммами, иначе No

#include <fstream>
#include <iostream>
#include <string>
#include <istream>

using namespace std;

int main() {
    string g;
    string h;
    getline(cin, g);
    getline(cin, h);
    int j = 0;
    int j1 = 0;
    int j12 = 0;
    int count1 = 0;
    int j23 = 0;
    for (int b = 0;b < g.size(); ++b) {
        
        if (!isspace(g[b])) j1++;
        
    }
    for (int y = 0; y < g.size(); ++y) {

        if (isalpha(g[y])) j23++;

    }
    for (int d = 0; d < h.size(); ++d) {

        if (!isspace(h[d])) j12++;

    }


    
    for (int i = 0; i < g.size(); ++i) {
            if (g[i] == h[j]) {

                count1++;
                j++;
                i = 0;
            }

        
    }
    if (count1 <= j23 || count1 > j && j1 >= j12 || j12 >= j1) cout << "YES";
    else cout << "NO";
    
}

Ответы (1 шт):

Автор решения: Harry

Зачем просто, если можно сложно...

sort(g.begin(),g.end());
sort(h.begin(),h.end());
if (g == h) 
{
    Таки анаграмма...
}
→ Ссылка