Leetcode - Valid Word Abbreviation

My code:

public class Solution {
    public boolean validWordAbbreviation(String word, String abbr) {
        int wi = 0;
        int ai = 0;
        int cnt = 0;
        while (ai < abbr.length()) {
            while (ai < abbr.length() && Character.isDigit(abbr.charAt(ai))) {
                if (cnt == 0 && abbr.charAt(ai) == '0') {
                    return false;
                }
                cnt = 10 * cnt + abbr.charAt(ai) - '0';
                ai++;
            }
            wi += cnt;
            cnt = 0;
            if (ai < abbr.length()) {
                if (wi >= word.length()) {
                    return false;
                }
                else if (word.charAt(wi) != abbr.charAt(ai)) {
                    return false;
                }
                else {
                    wi++;
                    ai++;
                }
            }
        }
        
        return wi == word.length();
    }
}

reference:
https://discuss.leetcode.com/topic/61435/simplest-java-solution-so-far

没做出来。
差点做出来。卡在了一个问题上。 可能会出现 015 这样的数字,这是错的。

Anyway, Good luck, Richardo! -- 10/21/2016

你可能感兴趣的:(Leetcode - Valid Word Abbreviation)