Determine se A é permutação de B usando valores ASCII

Eu escrevi uma função para determinar se stringa é uma permutação de stringb. A definição é a seguinte:

bool isPermutation(std::string a, std::string b){
    if(a.length() != b.length())
        return false;
    int a_sum, b_sum;
    a_sum = b_sum = 0;
    for(int i = 0; i < a.length(); ++i){
        a_sum += a.at(i);
        b_sum += b.at(i);
    }
    return a_sum == b_sum;
}

O problema com minha abordagem é que, sea = 600000 eb = 111111, a função retorna true.

Existe alguma maneira de manter minha abordagem geral desse problema (em vez de classificar as strings e, em seguida,strcmp) e manter a correção?

questionAnswers(3)

yourAnswerToTheQuestion