word-pattern(mock)
Posted 笨鸟居士的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word-pattern(mock)相关的知识,希望对你有一定的参考价值。
注意:
// String要用equals,不然比较结果不对,会出bug
// 使用String.split
// boolean打印用 %b
// abba 对应 cccc 也不行, 所以要用set记录
https://leetcode.com/problems/word-pattern/ https://leetcode.com/mockinterview/session/result/xsl1lbt/ package com.company; import java.util.*; class Solution { public boolean wordPattern(String pattern, String str) { // String要用equals,不然比较结果不对,会出bug // abba 对应 cccc 也不行, 所以要用set记录 // 使用String.split String[] strs = str.split(" "); if (pattern.length() != strs.length) { System.out.println("here1"); return false; } Map<String, String> mp = new HashMap<>(); Set<String> st = new HashSet<>(); for (int i=0; i<pattern.length(); i++) { String key = pattern.substring(i, i+1); if (mp.containsKey(key)) { // 开始用的 != 是错误的。要用equals if (!mp.get(key).equals(strs[i])) { System.out.printf("k: %s, v: %s, str: %s\n", key, mp.get(key), strs[i]); return false; } } else { if (st.contains(strs[i])) { return false; } else { mp.put(key, strs[i]); st.add(strs[i]); } } } return true; } } public class Main { public static void main(String[] args) { // write your code here System.out.println("Hello"); String pattern = "abba"; String str = "dog dog dog doa"; Solution solution = new Solution(); boolean ret = solution.wordPattern(pattern, str); System.out.printf("Get ret: %b\n", ret); } }
以上是关于word-pattern(mock)的主要内容,如果未能解决你的问题,请参考以下文章