408. Valid Word Abbreviation

11 阅读1分钟

image.png

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();
    }
}