637.有効な単語の略語



637 Valid Word Abbreviation



説明

与えられた1つ空でない文字列wordおよび略語abbr、文字列が指定された略語と一致するかどうかを返します。
a “word”など。文字列には次の有効な略語のみが含まれます。

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

上記の略語のみが文字列word法的な略語であることに注意してください。その他のword略語は違法です。



実際のインタビューでこの問題に遭遇したことがありますか? はい

サンプル

例1:

Gives s = 'internationalization', abbr = 'i12iz4n': Returns true.

例2:



Gives s = 'apple', abbr = 'a2e': Returns false.

input abbr input01という単語がfalseを返す理由がわかりません。

残りは検討するのが簡単です。数字を読むと、完全に読んで、対応する位置を見つけて比較することができます。 abbrの終わりは数字であることに注意してください。

class Solution { public: /** * @param word: a non-empty string * @param abbr: an abbreviation * @return: true if string matches with the given abbr or false */ bool validWordAbbreviation(string &word, string &abbr) { // write your code here int sum=0 int j=0 for(int i=0i=0&&abbr[i]-'0'<=9) { sum=sum*10+(abbr[i]-'0') if(sum==0) return false }else{ j=j+sum sum=0 if(abbr[i]!=word[j]) return false j++ } } if(sum) if(j+sum==word.length()) return true else return false return true } }