Pattern Matching

主题:面经

题目:

Pattern Matching, if '.' is used as a wildcard, which means '.'can represent any character. 


注释:

这道题题目给的不清楚,我的代码是假设:给定两个字符串,只有第二个字符串包含'.'。


Code:

import java.util.*;

class Test{
    public static void main(String[] args){
		Solution sol = new Solution();
		String str1 = "q.abc";
		String str2 = "a.c.";
		System.out.println(sol.isMatch(str1, str2));
    }
}

class Solution{
	public boolean isMatch(String str1, String str2){
		if(str1.length()==0){
			if(str2.length()==0) return true;
			if(str2.charAt(0)=='.') return isMatch(str1, str2.substring(1));
			else return false;
		}
		if(str2.length()==0) return str1.length()==0;
		if(str2.charAt(0)!='.'){
			if(str1.charAt(0)==str2.charAt(0)) return isMatch(str1.substring(1), str2.substring(1));
			else return false;
		}
		else{
			return isMatch(str1.substring(1), str2.substring(1)) || isMatch(str1, str2.substring(1));
		}
	}
}

小结:

Follow up:如果第一个字符串也可以包含'.'呢?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值