WordPattern题目描述:给定一个模式pattern和一个字符串str,判断str是否遵循相同的模式。Followhere指的是完全匹配,例如pattern中的每个字母与stringstr中的每个非空词之间存在双向连接。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:字符匹配首先,获取字符串s的所有单词,放入一个ListstrList(需要排除空字符串);然后,判断strList的个数是否与pattern的长度相同,如果不相同,则说明不能遵循Regularity,直接返回false。然后声明一个Map,即mappings,存放pattern中的字符与strList中的单词的映射关系,遍历pattern中的字符。具体过程如下:如果当前字符在mappings的key中,strList中的当前词和当前字符在mapping中如果映射的词不相同,则返回false;如果当前字符不在映射中,如果strList中的当前单词在映射的值集中,则返回false;如果strList中的当前词不在mappings的values集合中,则将当前字符和strList中的当前词放入mappings中,然后继续判断下一个字符。最后,如果没有发现不匹配的映射,则返回true。importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;publicclassLeetCode_290{publicstaticbooleanwordPattern(Stringpattern,Strings){String[]strs=s。分裂(””);列表<字符串>strList=newArrayList<>();for(Stringstr:strs){if(str!=""){strList.add(str);}}//判断strList的模式个数和模式长度是否相同?如果不是,则表示不能遵循该模式,直接返回falseif(pattern.length()!=strList.size()){returnfalse;}Map
