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.
It looks easy, but this question has a lot of pitfalls, and the test cases are poorly designed.
public class Solution { public boolean validWordAbbreviation(String word, String abbr) { int pos = 0; int i = 0; int num = 0; while(i= word.length()){ return false; } if(abbr.charAt(i) != word.charAt(pos)){ return false; } pos++; i++; } } return pos == word.length(); } } This siteOriginal articleAll follow "Attribution-NonCommercial-ShareAlike 4.0 License (CC BY-NC-SA 4.0)Please retain the following annotations when sharing or adapting:
Original author:Jake Tao,source:「LeetCode – 408. Valid Word Abbreviation」