408. Valid Word Abbreviation --字串處理
阿新 • • 發佈:2018-11-12
Given s = "internationalization", abbr = "i12iz4n": Return true.
abbr 裡數字代表相應的字元數,問字串是否相等
雖然是一個easy 的題但卻有兩個坑:
1. abbr 結尾的地方是數字 例如:
s= "internationalization" abbr= "i5a11o1" , 因此 return時得加上cout 來判斷 index + Integer.valueOf(count)
2.字元中 有 0, 例如 s= "a" abbr= "01" 因此只要出現一個不是其他數字後面的0 都是非法的, 比如 01 非法, 而10 合法。加上這個判斷
if(count.equals("0") && c=='0') return false;
class Solution { public boolean validWordAbbreviation(String word, String abbr) { int index = 0; String count = "0"; for(int i=0; i<abbr.length(); i++){ char c = abbr.charAt(i);if(Character.isLetter(c) ) { index = index + Integer.valueOf(count); if(index >= word.length() || c != word.charAt(index) ) return false; count = "0"; index++; } else { if(count.equals("0") && c=='0') returnfalse; count += c; } } return index + Integer.valueOf(count) == word.length(); } }