Wildcard Matching
2015-08-16 20:10
459 查看
非常巧的一个解法,记录一下
public class Solution { public boolean isMatch(String str, String pattern) { //非常巧 int s = 0, p = 0, match = 0, starIdx = -1; while (s < str.length()){ // advancing both pointers if (p < pattern.length() && (pattern.charAt(p) == '?' || str.charAt(s) == pattern.charAt(p))){ s++; p++; } // * found, only advancing pattern pointer else if (p < pattern.length() && pattern.charAt(p) == '*'){ starIdx = p; match = s; p++; } // last pattern pointer was *, advancing string pointer else if (starIdx != -1){ p = starIdx + 1; match++; s = match; } //current pattern pointer is not star, last patter pointer was not * //characters do not match else return false; } //check for remaining characters in pattern while (p < pattern.length() && pattern.charAt(p) == '*') p++; return p == pattern.length(); } }
相关文章推荐
- JVM总结
- 使用函数的小细节
- ACM数论基础之一_______质因数分解
- error LNK2019: 解析的外部符号 __imp__DispatchMessageW@4,在函数的符号 _WinMain@16 据引述
- JAVA反射机制获取类和方法
- codefroces 并查集 250 D
- 杭州电子科技大学acm---2008
- mysql查询语句
- 树结构的自定义及基本算法(Java数据结构学习笔记)
- ubuntu卸载安装包
- Django(中)
- 默认开机启动;通过Broadcastreceiver广播监听开机启动,实现"没有activity"的自启服务或者自启应用程序。
- 九度oj 1055
- 【Java设计模式】单例模式
- Bone Collector(01背包)
- 关于抽象类的几个简单理解
- 黑苹果系统迁移
- HDU 1848(sg博弈) Fibonacci again and again
- OC学习笔记十 copy语法
- 在Linux下安装windows后解决Linux不能启动能问题