码迷,mamicode.com
首页 > 其他好文 > 详细

408. Valid Word Abbreviation

时间:2017-05-28 10:01:03      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:ret   str   转换   note   log   cas   sans   mil   nal   

Given a non-empty string s and an abbreviation abbr, return whether the string matches with the given abbreviation.

A string such as "word" contains only the following valid abbreviations:

["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]

Notice that only the above abbreviations are valid abbreviations of the string "word". Any other string is not a valid abbreviation of "word".

Note:
Assume s contains only lowercase letters and abbr contains only lowercase letters and digits.

Example 1:

Given s = "internationalization", abbr = "i12iz4n":

Return true.

 

Example 2:

Given s = "apple", abbr = "a2e":


Return false.


是时候该总结一下string类的问题了由Easy到hard
这道题有几个可以学到的点:
第一:在string中判断是否为数字我自己写代码的时候用的isdigit()函数,碰到多位数的时候从最后加好的string变为int,我们还可以用 if(str[i] >= 0 && str[i] <= 9)来判断,转化成int的时候也可以直接使用str[i] - ‘0‘来转换。
第二:增加位数的时候可以用cnt = 10*cnt + str[i] - ‘0‘来更新 这种方法很常见

来看代码:
   bool validWordAbbreviation(string word, string abbr) {
        int pt1 = 0, pt2 = 0;
        while(pt1 < word.size() && pt2 < abbr.size())
        {
            if(0 <= abbr[pt2] && abbr[pt2] <= 9)
            {
                if(abbr[pt2] == 0)
                    return false;
                int value = 0;
                while(pt2 < abbr.size() && 0 <= abbr[pt2] && abbr[pt2] <= 9)
                {
                    value = value*10 + abbr[pt2]-0;
                    pt2++;
                }
                pt1 += value;
            }
            else
            {
                if(word[pt1++] != abbr[pt2++])
                    return false;
            }
        }
        return pt1 == word.size() && pt2 == abbr.size();
    }

 

 




408. Valid Word Abbreviation

标签:ret   str   转换   note   log   cas   sans   mil   nal   

原文地址:http://www.cnblogs.com/MrBeanFighting/p/6914943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!