1: class Solution { 2: public: 3: bool validWordAbbreviation(string word, string abbr) { 4: int i = 0, j = 0; 5: while (i < word.size() && j < abbr.size()) { 6: if (!isNum(abbr[j])) { 7: if (word[i++] != abbr[j++]) return false; 8: } else { 9: if (abbr[j] == '0') return false; 10: int l = 0; 11: while (j < abbr.size() && isNum(abbr[j])) { 12: l = l * 10 + abbr[j++] - '0'; 13: } 14: i += l; 15: } 16: } 17:
return i == word.size() && j == abbr.size();
18: } 19: bool isNum(char c) { 20: return c >= '0' && c <= '9'; 21: } 22: };
Saturday, October 8, 2016
408. Valid Word Abbreviation
No trick. Pretty straightforward solution. Note when return, we need to check if we've reached both ends of word and it abbreviation.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment