LeetCode-Word Pattern

来源:互联网 发布:select ajax json 联动 编辑:程序博客网 时间:2024/04/30 03:44

才发现hashmap还有一个contains value function 但是由于他是把所有value都扫一遍 还不如存两个hashmap呢

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

两个map

public boolean wordPattern(String pattern, String str) {    String[] words = str.split(" ");    if (words.length != pattern.length())        return false;    Map index = new HashMap();    for (int i=0; i<words.length; ++i)        if (!Objects.equals(index.put(pattern.charAt(i), i),                            index.put(words[i], i)))            return false;    return true;}

put函数是有返回值的 可以巧妙利用 返回的是被覆盖的那个entry的value 或者返回null 即原来里面不存在


0 0