[leetcode]Word Pattern

原创 2015年11月19日 21:38:59

题目如下:

Given a pattern and a string str, find if str follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in pattern and 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 pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.

看到这个题目下意识地就选择用map,考虑以下几个问题:

  1. 初始输入的两个字符串,用split方法将后一个进行分割并保存在一个string类型的数组中,注意比较一下数组的长度与第一个字符串的长度是否相一致,不一致直接返回false(特殊情况的考虑);
  2. 在使用map时不单单要对key进行判断,还需要对value进行判断,否则会有特殊案例无法通过(因为这个WA了一遍)

毕竟是Easy题,附上代码:

public class Solution {
    public boolean wordPattern(String pattern, String str) {
        boolean flag = true;
            Map<Object, String> map = new HashMap();
            String []strArray = str.split(" ");
//          System.out.println(strArray.length);
            if(pattern.length() != strArray.length) return false;
            int index;
            char ch;
            for(index= 0; index < pattern.length(); index++){
                ch = pattern.charAt(index);
                if(map.containsKey(ch)){
                    String key = map.get(ch);
                    if(!key.equals(strArray[index])){
                        flag = false;
                        break;
                    }
                }
                else{
                    if(map.containsValue(strArray[index])){
                        flag = false;
                        break;
                    }
                    map.put(ch, strArray[index]);
                }
            }           
            return flag;
    }
}

题目链接:https://leetcode.com/problems/word-pattern/

版权声明:本文为博主原创文章,未经博主允许不得转载。

[leetcode-290]Word Pattern(java)

问题描述:https://leetcode.com/problems/word-pattern/分析:这道题比较简单,维护一个hash表,key为pattern中的字符,value为被切割的字符串。代...
  • zdavb
  • zdavb
  • 2015年10月06日 10:39
  • 1306

[leetcode] 291. Word Pattern II 解题报告

题目链接: https://leetcode.com/problems/word-pattern-ii/ Given a pattern and a string str, find i...
  • qq508618087
  • qq508618087
  • 2016年06月24日 04:20
  • 1776

[LeetCode 290] Word Pattern

Given a pattern and a string str, find if str follows the same pattern. Examples: pattern = "a...
  • sbitswc
  • sbitswc
  • 2015年10月09日 11:44
  • 3627

leetcode 290 Word Pattern C++

这题我没有用istringstream,因为如果不是空格就不能用了,所以要用一个一般性的办法。 bool wordPattern(string pattern, string str) { ...
  • a2331046
  • a2331046
  • 2016年06月07日 21:44
  • 413

leetcode 290: Word Pattern

Word Pattern Total Accepted: 1733 Total Submissions: 6204 Difficulty: Easy Given a...
  • xudli
  • xudli
  • 2015年10月06日 16:10
  • 4951

LeetCode 291. Word Pattern II(单词模式II)

原题网址:https://leetcode.com/problems/word-pattern-ii/ Given a pattern and a string str, find if str...
  • jmspan
  • jmspan
  • 2016年04月16日 04:00
  • 459

【LeetCode-290】Word Pattern(C++)

题目要求:   给你两个字符串,其中一个是模式字符串pattern,一个是string字符串str。判断str字符串是否符合pattern字符串所表达的模式。比如: pattern = "abba"...
  • liujiayu1015
  • liujiayu1015
  • 2015年11月16日 16:10
  • 773

(LeetCode)Word Pattern --- 模式匹配

(LeetCode)Word Pattern --- 模式匹配
  • u012965373
  • u012965373
  • 2016年08月16日 10:28
  • 791

Leetcode-459. Repeated Substring Pattern

前言:正好碰见Leetcode有一次在线笔试,测试一下,Rank:92/807。如有错误欢迎指正。博主首发CSDN,mcf171专栏。 博客链接:mcf171的博客 ————————————————...
  • mcf171
  • mcf171
  • 2016年11月14日 17:19
  • 1173

leetcode 456. 132 Pattern题解

Given a sequence of n integers a1, a2, …, an, a 132 pattern is a subsequence ai, aj, ak such that i ...
  • u011693064
  • u011693064
  • 2017年01月21日 23:17
  • 528
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode]Word Pattern
举报原因:
原因补充:

(最多只允许输入30个字)