
class Solution {
public boolean validWordAbbreviation(String word, String abbr) {
int i = 0, j = 0;
while (i < word.length() && j < abbr.length()) {
if (word.charAt(i) == abbr.charAt(j)) {
i++;
j++;
} else if (Character.isDigit(abbr.charAt(j)) && abbr.charAt(j) != '0') {
int k = j;
while (k < abbr.length() && Character.isDigit(abbr.charAt(k))) {
k++;
}
int num = Integer.parseInt(abbr.substring(j, k));
i += num;
j = k;
} else {
return false;
}
}
return i == word.length() && j == abbr.length();
}
}