private int calculateScore(int prevLastWordIndex, int currentLastWordIndex) {
		if (scores[prevLastWordIndex][currentLastWordIndex] != INVALID_SCORE)
			return scores[prevLastWordIndex][currentLastWordIndex];
		String prevWord = myWords[prevLastWordIndex];
		String currentWord = myWords[currentLastWordIndex];
		int score = 0;
		for (int offset = -prevWord.length() + 1; offset < currentWord.length(); offset++) {
			int count = 0;
			for (int i = 0; i < prevWord.length(); i++) {
				if (i + offset >= currentWord.length())
					break;
				if (i + offset < 0)
					continue;
				if (prevWord.charAt(i) == currentWord.charAt(i + offset))
					count++;
			}
			if (count > score)
				score = count;
		}
		scores[prevLastWordIndex][currentLastWordIndex] = score;
		scores[currentLastWordIndex][prevLastWordIndex] = score;
		return score;
	}