笔试-字符串匹配
有一个字符串它的构成是词+空格的组合,如“北京 杭州 杭州 北京”, 要求输入一个匹配模式(简单的以字符来写), 比如 aabb, 来判断该字符串是否符合该模式, 举个例子:
- pattern = "abba", str="北京 杭州 杭州 北京" 返回 ture
- pattern = "aabb", str="北京 杭州 杭州 北京" 返回 false
- pattern = "baab", str="北京 杭州 杭州 北京" 返回 ture
- 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;
}
}
|