G面经prepare: Pattern Match - neverlandly - 博客园
设定一个pattern 把 'internationalization' 变成 'i18n', 比如word是house,pattern可以是h3e, 3se, 5, 1o1s1等, 给pattern和word,判断是否match.
设定一个pattern 把 'internationalization' 变成 'i18n', 比如word是house,pattern可以是h3e, 3se, 5, 1o1s1等, 给pattern和word,判断是否match.
4 public boolean check(String s1, String s2) { 5 return helper(s1, 0, s2, 0); 6 } 7 8 public boolean helper(String s1, int i1, String s2, int i2) { 9 if (i1==s1.length() && i2==s2.length()) return true; 10 if (i1==s1.length() || i2==s2.length()) return false; 11 if (isDigit(s2.charAt(i2))) { 12 int num = 0; 13 while (i2<s2.length() && isDigit(s2.charAt(i2))) { 14 num = num*10 + (int)(s2.charAt(i2)-'0'); 15 i2++; 16 } 17 if (i1+num > s1.length()) return false; 18 return helper(s1, i1+num, s2, i2); 19 } 20 else { 21 if (s1.charAt(i1) != s2.charAt(i2)) return false; 22 return helper(s1, i1+1, s2, i2+1); 23 } 24 } 25 26 public boolean isDigit(char c) { 27 if (c>='0' && c<='9') return true; 28 else return false; 29 }Read full article from G面经prepare: Pattern Match - neverlandly - 博客园