zoukankan      html  css  js  c++  java
  • Java [Leetcode 290]Word Pattern

    题目描述:

    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:

    1. pattern = "abba", str = "dog cat cat dog" should return true.
    2. pattern = "abba", str = "dog cat cat fish" should return false.
    3. pattern = "aaaa", str = "dog cat cat dog" should return false.
    4. 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.

    解题思路:

    使用HashMap来做。

    代码如下:

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

      

  • 相关阅读:
    我是如何用三小时搞出个赚钱产品的?
    搭建一个基于nuxt.js的项目
    栅格系统
    git使用
    通过JS获取屏幕高度,借助屏幕高度设置div的高度
    如何理解盒模型
    e.target.value 和 this 的区别
    组件化设计:弹窗的使用逻辑
    uni-app 入坑记
    MAC 系统快捷键
  • 原文地址:https://www.cnblogs.com/zihaowang/p/5184082.html
Copyright © 2011-2022 走看看