Java写给定一种规律pattern和一个字符串str,判断这个字符串是否符合这个规律。例如,给定规律 "abab",字符串 "redblueredblue" 符合这个规律,而 "redlue" 不符合。
时间: 2024-01-14 18:01:53 浏览: 108
Java判断字符串是否为IP地址的方法
这个问题可以使用哈希表来解决。首先,将字符串str使用空格割成每个单词,同时将规律转化为数组。然后,我们逐一较每个单词和pattern中的字符是否匹配,如果匹配,则返回false。如果匹配,则将单词和pattern中的字符都存入哈希表中,以便后续的匹配。如果最后哈希表中的键值对个数不等于单词个数或者pattern中的字符个数,也返回false。否则,返回true。以下是Java代码实现:
public boolean wordPatternMatch(String pattern, String str) {
String[] words = str.split(" ");
if (words.length != pattern.length()) {
return false;
}
Map<Character, String> map = new HashMap<>();
for (int i = 0; i < words.length; i++) {
char c = pattern.charAt(i);
String w = words[i];
if (map.containsKey(c)) {
if (!map.get(c).equals(w)) {
return false;
}
} else {
if (map.containsValue(w)) {
return false;
}
map.put(c, w);
}
}
return true;
}
阅读全文