Valid Word Abbreviation
给一个abbr和一个word, 问abbr是不是word的缩写. 这个题太傻逼了, 各种corner cases. 而且还有’01’ ‘a’ 这种带leading 0的.
class Solution {
public boolean validWordAbbreviation(String word, String abbr) {
if(abbr.length() > word.length())
return false;
int cur = 0;
for(int i = 0; i < abbr.length();) {
if(abbr.charAt(i) >= 'a' && abbr.charAt(i) <='z') {
if(cur < word.length() && abbr.charAt(i) != word.charAt(cur))
return false;
else{
cur++;
i++;
}
}else if(abbr.charAt(i) > '0' && abbr.charAt(i) <= '9') {
int right = i;
while(right < abbr.length() && abbr.charAt(right) >= '0' && abbr.charAt(right) <= '9'){
right++;
}
cur += Integer.valueOf(abbr.substring(i, right));
i = right;
}else
return false;
}
return cur == word.length();
}
}