290. Word Pattern
2016-07-09 22:26
302 查看
Given a
find if
Here follow means a full match, such that there is a bijection between a letter in
a non-empty word in
Examples:
pattern =
pattern =
pattern =
pattern =
Notes:
You may assume
lowercase letters separated by a single space.
双向映射,键和值同时不存在才能插入,否则检查,键映射不等于值、值存在没有对应的键,都不是双向映射。
public static boolean wordPattern(String pattern, String str)
{
int patlen=pattern.length();
int strlen=str.length();
if(patlen==0||strlen==0)
return false;
String[] strs=str.split(" ");
if(patlen!=strs.length)
return false;
HashMap<Character, String> hashmap=new HashMap<>(strs.length);
for(int i=0;i<patlen;i++)
{
char c=pattern.charAt(i);
String s=strs[i];
if(!hashmap.containsKey(c)&&!hashmap.containsValue(s))
hashmap.put(c, s);
else {
if(!hashmap.containsKey(c)||hashmap.get(c).compareTo(s)!=0)
return false;
}
}
return true;
}
patternand a string
str,
find if
strfollows the same pattern.
Here follow means a full match, such that there is a bijection between a letter in
patternand
a non-empty word in
str.
Examples:
pattern =
"abba", str =
"dog cat cat dog"should return true.
pattern =
"abba", str =
"dog cat cat fish"should return false.
pattern =
"aaaa", str =
"dog cat cat dog"should return false.
pattern =
"abba", str =
"dog dog dog dog"should return false.
Notes:
You may assume
patterncontains only lowercase letters, and
strcontains
lowercase letters separated by a single space.
双向映射,键和值同时不存在才能插入,否则检查,键映射不等于值、值存在没有对应的键,都不是双向映射。
public static boolean wordPattern(String pattern, String str)
{
int patlen=pattern.length();
int strlen=str.length();
if(patlen==0||strlen==0)
return false;
String[] strs=str.split(" ");
if(patlen!=strs.length)
return false;
HashMap<Character, String> hashmap=new HashMap<>(strs.length);
for(int i=0;i<patlen;i++)
{
char c=pattern.charAt(i);
String s=strs[i];
if(!hashmap.containsKey(c)&&!hashmap.containsValue(s))
hashmap.put(c, s);
else {
if(!hashmap.containsKey(c)||hashmap.get(c).compareTo(s)!=0)
return false;
}
}
return true;
}
相关文章推荐
- 技术布道者宣言
- zabbix_server
- nyoj35 表达式求值
- windows 下配置 Nginx 常见问题
- Bzoj2440 完全平方数
- hdu 5062(水题)
- 289. Game of Life
- 数据结构实验之链表七:单链表中重复元素的删除
- 51nod 1138 连续整数的和(数学公式)
- IBM xSeries 226 8648 系统参数
- 安装cocoapods遇到error: RPC failed; curl 56 SSLRead() return error -36问题
- Node起一个web服务器
- 河南省第九届ACM C题
- vim:修改光标的显示
- 2016sdau课程练习专题三 1012
- Centos6 rpm 安装mysql5.5
- 自定义fact(n)函数求阶乘的累加和
- 广告轮播栏(viewpager)
- Oracle清除缓存的命令
- Sparse Matrix Multiplication