描述
中文English
給定一個非空字符串 word
和縮寫 abbr
,返回字符串是否可以和給定的縮寫匹配。
比如一個 “word”
的字符串僅包含以下有效縮寫:
["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]
樣例
樣例 1:
輸入 : s = "internationalization", abbr = "i12iz4n"
輸出 : true
樣例 2:
輸入 : s = "apple", abbr = "a2e"
輸出 : false
public class Solution {
/**
* @param word: a non-empty string
* @param abbr: an abbreviation
* @return: true if string matches with the given abbr or false
*/
public boolean validWordAbbreviation(String word, String abbr) {
// write your code here
int i = 0;
int j = 0;
while (i < word.length() && j < abbr.length()) {
if (word.charAt(i) == abbr.charAt(j)) {
i ++;
j ++;
} else if (abbr.charAt(j) > '0' && abbr.charAt(j) <= '9') {
int start = j;
while(j < abbr.length() && Character.isDigit(abbr.charAt(j))) {
j ++;
}
i += Integer.valueOf(abbr.substring(start, j));
} else {
return false;
}
}
return (i == word.length()) && (j == abbr.length());
}
}