首页 > 其他 > 详细

LeetCode 409: Valid Word Abbreviation

时间:2017-10-08 16:03:39      阅读:260      评论:0      收藏:0      [点我收藏+]

Note:

1. 0 could be 10 but not valid for 01. Check edge cases.

2. No number shoud be there as num reduced.

class Solution {
    public boolean validWordAbbreviation(String word, String abbr) {
        if (abbr.length() > word.length()) return false;
        int runner = 0, i = 0, star = 0;
        for (; i < word.length(); i++) {
            if (star == 0) {
                while (runner < abbr.length() && abbr.charAt(runner) >= ‘0‘ && abbr.charAt(runner) <= ‘9‘) {
                    if (star == 0 && abbr.charAt(runner) == ‘0‘) return false;
                    star = star * 10 + (int)(abbr.charAt(runner++) - ‘0‘);
                }
            }
            
            if (star > 0) star--;
            else if (runner < abbr.length() && word.charAt(i) == abbr.charAt(runner)) runner++;
            else return false;
        }
        
        return i == word.length() && runner == abbr.length() && star == 0;
    }
}

 

LeetCode 409: Valid Word Abbreviation

原文:http://www.cnblogs.com/shuashuashua/p/7637558.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!