笔试-字符串匹配

笔试-字符串匹配

有一个字符串它的构成是词+空格的组合,如“北京 杭州 杭州 北京”, 要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断该字符串是否符合该模式, 举个例子:

  1. pattern = "abba", str="北京 杭州 杭州 北京" 返回 ture
  2. pattern = "aabb", str="北京 杭州 杭州 北京" 返回 false
  3. pattern = "baab", str="北京 杭州 杭州 北京" 返回 ture
  4. pattern = "baac", str="北京 杭州 杭州 北京" 返回 false
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Solution {
	public boolean wordPattern(String pattern, String str) {  
    Map<Integer, Character> map = new HashMap<>();  
    for (int i = 0; i < pattern.length(); i++) {  
        char ch = pattern.charAt(i);  
        map.put(i, ch);  
    }  
  
    String[] strArr = str.split(" ");  
    if (strArr.length != pattern.length()) {  
        return false;  
    } else {  
        Map<Character, String> compMap = new HashMap<>();  
        for (int i = 0; i < strArr.length; i++) {  
            Character ch = map.get(i);  
            if (!compMap.containsKey(ch)) {  
                compMap.put(ch, strArr[i]);  
            } else {  
                if (compMap.get(ch) != strArr[i]) {  
                    return false;  
                }  
            }  
        }  
    }  
    return true;  
}
}
updatedupdated2024-11-082024-11-08