MrBeanFighting

408. Valid Word Abbreviation

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

 

 




发表于 2017-05-28 05:37  doudoudouhahaha  阅读(142)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-11-12
  • 2021-06-08
  • 2021-05-12
  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-12
  • 2021-11-12
  • 2021-11-12
  • 2021-11-12
  • 2022-12-23
  • 2021-11-12
  • 2021-07-08
相关资源
相似解决方案