G面经prepare: Pattern Match
2016-01-20 07:06
447 查看
设定一个pattern 把 'internationalization' 变成 'i18n', 比如word是house,pattern可以是h3e, 3se, 5, 1o1s1等, 给pattern和word,判断是否match,
package DataStreamAverage; public class Solution3 { public boolean check(String s1, String s2) { return helper(s1, 0, s2, 0); } public boolean helper(String s1, int i1, String s2, int i2) { if (i1==s1.length() && i2==s2.length()) return true; if (i1==s1.length() || i2==s2.length()) return false; if (isDigit(s2.charAt(i2))) { int num = 0; while (i2<s2.length() && isDigit(s2.charAt(i2))) { num = num*10 + (int)(s2.charAt(i2)-'0'); i2++; } if (i1+num > s1.length()) return false; return helper(s1, i1+num, s2, i2); } else { if (s1.charAt(i1) != s2.charAt(i2)) return false; return helper(s1, i1+1, s2, i2+1); } } public boolean isDigit(char c) { if (c>='0' && c<='9') return true; else return false; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Solution3 sol = new Solution3(); boolean res = sol.check("houskjfjjdkse", "h11e"); if (res) System.out.println("True"); else System.out.println("false"); } }
相关文章推荐
- Leetcode @ Word Search II
- thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)
- C++编译时函数名修饰约定规则(很具体),MFC提供的宏,extern "C"的作用
- BZOJ 3884: 上帝与集合的正确用法|数论
- Linux下的一个快速跳转到上N层目录的简单方法
- stdcall、cdecl、fastcall、thiscall 、naked call的汇编详解
- Leetcode java Word Search2
- 大数据(十一) - Mahout
- Leetcode@word search
- 主席树 Couriers
- 小娜学法(8):什么叫复核?
- [python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像
- C语言33行代码简单实现Shell
- 一维条形码攻击技术(Badbarcode)
- POJ-2240-Arbitrage-spfa-寻找正权环
- 这些工具可以帮助我们,纯ubuntu下嵌入式进行开发
- 使用UIDataDetectorTypes自动检测电话、网址和邮箱
- UIWebView用法详解及代码分享
- C语言实现shell框架
- iOS中UIWebView的使用详解