词的匹配
该题目来源于:阿里中间件笔试,我的联系方式(QQ):1193600556
,欢迎交流
阿里巴巴笔试 有一个字符串它的构成是词+空格的组合,如“北京 杭州 杭州 北京”, 要求输入一个匹配模式(简单的以字符来写).
比如 aabb,来判断该字符串是否符合该模式, 举个例子:pattern = “abba”, str=”北京 杭州 杭州 北京” 返回 ture
pattern = “aabb”, str=”北京 杭州 杭州 北京” 返回 false
pattern = “baab”, str=”北京 杭州 杭州 北京” 返回 ture
解法
- 首先以空格切词,并使用一个Map保存匹配关系
- 遍历模式,在匹配关系中查找key
- 如果找到,比较value是否与词是否相同,如果不同,返回false
- 如果未找到,查找value,如果存在返回false,不存在则将key,value存入
- 遍历结束,返回true
public static boolean wordPattern(String pattern, String str) {
if (str == null || pattern == null)
return false;
Map<Character, String> reflect =