码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode problem 10: Regular Expression Matching

时间:2017-11-18 21:00:34      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:reg   amp   turn   tco   class   false   ++   return   ble   

class Solution {
	public:
		bool match(string s, string p, int ss, int ps){
			int psize = p.size();
			int ssize = s.size();
			while (ps < psize && ss < ssize){
				char c = p[ps];
				if (c != ‘.‘ && c != ‘*‘){
					if (c != s[ss]){
						return false;
					}
					ps ++;
					ss ++;
					continue;
				}
				if (c == ‘*‘){
					if (ps == 0){
						return false;
					}
					char p_last = s[ps-1];
					if (p_last == ‘.‘){
						p_last = s[ss-1];
					}
					int sss = ss;
					while (sss < ssize && p_last == s[sss]){
						if (match(s, p, ++sss, ps+1)){
							return true;
						}
					}
				}
				ss ++;
				ps ++;
			}
			return (ps == psize && ss == ssize);
		}
		bool isMatch(string s, string p) {
			return match(s, p, 0, 0);
		}
};

  

LeetCode problem 10: Regular Expression Matching

标签:reg   amp   turn   tco   class   false   ++   return   ble   

原文地址:http://www.cnblogs.com/nosaferyao/p/7857717.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!