zoukankan      html  css  js  c++  java
  • G面经prepare: Pattern Match

    设定一个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 }
  • 相关阅读:
    大道至简第5 章 失败的过程也是过程读后感
    序列化组件之MoelSerializer
    序列化组件之Serializer
    DRF框架 生命周期 及五大模块源码分析
    Restful API 接口与规范
    Vue原理及核心
    Vue之路由跳转传参,插件安装与配置
    Vue项目搭建及环境配置
    Vue之组件
    Vue实例成员及事件
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/5143951.html
Copyright © 2011-2022 走看看