给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。

这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。

示例1:

输入: pattern = "abba", str = "dog cat cat dog"
输出: true

示例 2:

输入:pattern = "abba", str = "dog cat cat fish"
输出: false

示例 3:

输入: pattern = "aaaa", str = "dog cat cat dog"
输出: false

示例 4:

输入: pattern = "abba", str = "dog dog dog dog"
输出: false

说明:
你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。

这题比较简单。使用hashmap可以较为快捷解决问题。特别的,在这题里需要注意value不唯一对应key的问题,比如“aabb”,“dog dog dog dog”案例中,dog对应了a和b。根据题意是要返回错误的。所以需要加上判断。

代码如下:

 class Solution {
public boolean wordPattern(String pattern, String str) {
boolean ans = true;
String[] ss = str.split(" ");
Map<Character, String> map = new HashMap<>();
if (ss.length != pattern.length())
return false;
for (int i = 0; i < pattern.length(); i++) {
if (map.get(pattern.charAt(i)) == null) {
if (!map.containsValue(ss[i])) {
map.put(pattern.charAt(i), ss[i]);
continue;
} else
return false;
}
if (!map.get(pattern.charAt(i)).equals(ss[i])) {
ans = false;
break;
}
}
return ans;
}
}

最新文章

  1. drawable animation
  2. 学习OpenCV——HOG+SVM
  3. (转)QML代码与现有Qt UI代码整合
  4. poj 2891 Strange Way to Express Integers (非互质的中国剩余定理)
  5. 翻阅《数据结构与算法javascript描述》--数组篇
  6. 权威发布:长链非编码RNA命名规则
  7. CodeForces 489C (贪心) Given Length and Sum of Digits...
  8. C:应用于字符串处理函数
  9. Why SignalR does not use WebSockets?
  10. ASP.NET MVC中加载WebForms用户控件(.ascx)
  11. Router
  12. Discuz的安装与使用
  13. JVM 指令
  14. Draw your Next App Idea with Ink to Code
  15. Struts的FormFile与Commons-FileUpload控件使用心得
  16. Dockerfile详解(二)
  17. 5. Longest Palindromic Substring - Unsolved
  18. 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)
  19. Final发布用户使用报告 -- Thunder团队
  20. Raven: 2靶机入侵

热门文章

  1. java控制执行流程
  2. Spring 基础知识学习
  3. 百万年薪python之路 -- 并发编程之 多线程 三
  4. git 拉取指定的远程分支(三种方式)
  5. abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理六(二十四)
  6. SQLServer执行大脚本文件时,提示“无法执行脚本没有足够的内存继续执行程序 (mscorlib)”
  7. fenby C语言 P18
  8. 【Java必修课】通过Value获取Map中的键值Key的四种方法
  9. virtual与override的使用
  10. C语言存储类别和链接