• LeetCode_290. Word Pattern


    290. Word Pattern

    Easy

    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.

    Example 1:

    Input: pattern = "abba", str = "dog cat cat dog"
    Output: true

    Example 2:

    Input:pattern = "abba", str = "dog cat cat fish"
    Output: false

    Example 3:

    Input: pattern = "aaaa", str = "dog cat cat dog"
    Output: false

    Example 4:

    Input: pattern = "abba", str = "dog dog dog dog"
    Output: false

    Notes:
    You may assume pattern contains only lowercase letters, and str contains lowercase letters that may be separated by a single space.

    package leetcode.easy;
    
    public class WordPattern {
    	@org.junit.Test
    	public void test() {
    		String pattern1 = "abba";
    		String str1 = "dog cat cat dog";
    		String pattern2 = "abba";
    		String str2 = "dog cat cat fish";
    		String pattern3 = "aaaa";
    		String str3 = "dog cat cat dog";
    		String pattern4 = "abba";
    		String str4 = "dog dog dog dog";
    		System.out.println(wordPattern(pattern1, str1));
    		System.out.println(wordPattern(pattern2, str2));
    		System.out.println(wordPattern(pattern3, str3));
    		System.out.println(wordPattern(pattern4, str4));
    	}
    
    	public boolean wordPattern(String pattern, String str) {
    		String[] arrays = str.split(" ");
    		if (arrays.length != pattern.length()) {
    			return false;
    		}
    
    		java.util.Map<String, Character> map = new java.util.HashMap<>();
    		for (int i = 0; i < pattern.length(); i++) {
    			if (map.containsKey(arrays[i]) && map.get(arrays[i]) != pattern.charAt(i)) {
    				return false;
    			} else if (!map.containsKey(arrays[i]) && map.containsValue(pattern.charAt(i))) {
    				return false;
    			} else {
    				map.put(arrays[i], pattern.charAt(i));
    			}
    		}
    		return true;
    	}
    }
    
  • 相关阅读:
    LeetCode First Bad Version (二分查找)
    LeetCode Permutations II (全排列)
    LeetCode Permutations (全排列)
    LeetCode Minimum Path Sum (简单DP)
    LeetCode Binary Tree Postorder Traversal(数据结构)
    LeetCode Sort Colors (技巧)
    邹忌
    参数传递
    父子窗体返回值与互操作
    其他数据库连接
  • 原文地址:https://www.cnblogs.com/denggelin/p/11777309.html
Copyright © 2020-2023  润新知