How to solve a large system of linear algebra? A friend has given me the following puzzle to solve, however, I lack the linear algebra knowledge to calculate the solution, and my attempts to brute force the solution have been foiled by a large number of combinations. 
The Problem:
Every letter in the alphabet is assigned a whole number from $1-26$. No two letters have the same number. Below is a list of $44$ words and the value of their letters added up. For example, if $O=11$, $H=23$, $I=2$, OHIO would equal $11+23+2+11 = 47$ (these values are not necessarily correct).

find the value of ALBUQUERQUE (added in the same manner).
Thanks for any solutions or ideas.
 A: To solve it by hand you need to look for words that have similar sets of letters.  Using OREGON and RENO you know $G+O=28$.  It's too bad they didn't give you ARKANSAS.  RENO and NOME give $M=R+3$.  Can you find $D+A-O=17?$  MONTGOMERY and MONTEREY are interesting.  It is supposed to be a certain amount of work.
A: This question has already been answered sufficiently by dantopa with the addition of the comment by FredH. However, I'll just put some Java/MATLAB code here for the sake of completeness, and so you can see how to solve a problem like this using a computer. 
Java:
import java.util.*;

public static void main(String args[]) {

String[] names = {"alaska", "arizona", "atlanta", "boston", "buffalo", "chicago", "columbia", "denver", "detroit", "elpaso", "hawaii", "houston", "idaho", "iowa", 
        "jamestown", "kansas", "kentucky", "louisiana", "louisville", "maine", "michigan", "monterey", "montgomery", "nantucket", "nashville", "nevada", "neworleans", "newyork", "nome",
        "ohio", "oregon", "reno", "sacramento", "salem", "sanantonio", "savannah", "seattle", "tampa", "texas", "toledo", "tulsa", 
        "utah", "venice", "wichita"};



int[][] x = new int[44][26];


int count = 0;
int value = 0;

for(String y :names) {
    for(int i = 0; i < y.length(); i++) {
        value = (int)y.charAt(i) - 97; // I looked up an ASCII table because chars are stored as integers and subtracted 97 to that a would be at the first index.
        x[count][value]++;
    }
    count++;
}

System.out.print("["); // This is just printing out in a convenient form so I we can copy it into MATLAB easily
for(int i = 0; i < 44; i++) {
    for(int j = 0; j < 26; j++) {
        System.out.print(x[i][j]);
        if(j < 25) System.out.print(",");
    }
    System.out.println(";");
}

System.out.println("]");
}}

Ok copy the output MATLAB (you could do it in some Java library or done this first part in MATLAB however I don't like doing normal programming on MATLAB or doing math in Java)
In MATLAB:
a = \\paste the output from java here: 
b = [73, 73, 81, 56, 91, 81, 109, 72, 93, 70, 106, 56, 64, 64, 102, 56, 83, 111, 157, 65, 122, 91, 134, 78, 129, 68, 105, 91, 36, 47, 61, 33, 99, 64, 88, 85, 77, 77, 49, 61, 58, 44, 69, 113];
b = b';
x = a\b
The output will be all the solutions in alphabetical order, however $Q$ will be $0$. Since the problem called for numbers between $1$ and $26$, just replace it with the number which is not included already. It is $1$, so you can deduce that $Q = 1$ and use it to calculate the value of Albuquerque. 
