【发布时间】:2023-01-02 12:10:47
【问题描述】:
这里的 pattern 是一个字符串,arr 是一个字符串数组,这里的 map 是一个 hashmap i,e HashMap<Character,String> map=new HashMap<>();
if(!map.get(pattern.charAt(i)).equals(arr[i])){
return false;
}
以上一个正在工作。 但是下一个有什么问题......?......
if(map.get(pattern.charAt(i))!=(arr[i])){
return false;
}
这是我对第 1 号问题的解决方案的一部分。 290 leetcode... 当我使用第一个 if 语句时,整个代码都在工作......但是对于 if 语句的第二个版本,并不是所有的测试用例都通过了。为什么这样?
class Solution {
public boolean wordPattern(String pattern, String s) {
String[] arr=s.split(" ");
if(arr.length!=pattern.length()){
return false;
}
HashMap<Character,String> map=new HashMap<>();
for(int i=0;i<arr.length;i++){
if(map.containsKey(pattern.charAt(i))){
//**this line is my doubt**// if(!map.get(pattern.charAt(i)).equals(arr[i])){
return false;
}
else{
if(map.containsValue(arr[i])){
return false;
}
map.put(pattern.charAt(i),arr[i]);
}
}
return true;
}
}
【问题讨论】:
-
我不使用 Java,所以我想知道
map.get(pattern.charAt(i))返回什么?我猜.equals()是有原因的。 -
这回答了你的问题了吗? String.equals versus ==
标签: java data-structures hashmap