设定一个pattern 把 'internationalization' 变成 'i18n', 比如word是house,pattern可以是h3e, 3se, 5, 1o1s1等,
给pattern和word,判断是否match,
1 package DataStreamAverage;
2
3 public class Solution3 {
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 }
30
31
32 /**
33 * @param args
34 */
35 public static void main(String[] args) {
36 // TODO Auto-generated method stub
37 Solution3 sol = new Solution3();
38 boolean res = sol.check("houskjfjjdkse", "h11e");
39 if (res) System.out.println("True");
40 else System.out.println("false");
41 }
42
43 }