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 } }